WIP: Save agent roles integration work before CHORUS rebrand
- Agent roles and coordination features - Chat API integration testing - New configuration and workspace management 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
		
							
								
								
									
										87
									
								
								vendor/github.com/libp2p/go-yamux/v4/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								vendor/github.com/libp2p/go-yamux/v4/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | ||||
| # Yamux | ||||
|  | ||||
| Yamux (Yet another Multiplexer) is a multiplexing library for Golang. | ||||
| It relies on an underlying connection to provide reliability | ||||
| and ordering, such as TCP or Unix domain sockets, and provides | ||||
| stream-oriented multiplexing. It is inspired by SPDY but is not | ||||
| interoperable with it. | ||||
|  | ||||
| Yamux features include: | ||||
|  | ||||
| * Bi-directional streams | ||||
|   * Streams can be opened by either client or server | ||||
|   * Server-side push support | ||||
| * Flow control | ||||
|   * Avoid starvation | ||||
|   * Back-pressure to prevent overwhelming a receiver | ||||
| * Keep Alives | ||||
|   * Enables persistent connections over a load balancer | ||||
| * Efficient | ||||
|   * Enables thousands of logical streams with low overhead | ||||
|  | ||||
| ## Documentation | ||||
|  | ||||
| For complete documentation, see the associated [Godoc](http://godoc.org/github.com/libp2p/go-yamux). | ||||
|  | ||||
| ## Specification | ||||
|  | ||||
| The full specification for Yamux is provided in the `spec.md` file. | ||||
| It can be used as a guide to implementors of interoperable libraries. | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
| Using Yamux is remarkably simple: | ||||
|  | ||||
| ```go | ||||
|  | ||||
| func client() { | ||||
|     // Get a TCP connection | ||||
|     conn, err := net.Dial(...) | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Setup client side of yamux | ||||
|     session, err := yamux.Client(conn, nil) | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Open a new stream | ||||
|     stream, err := session.Open() | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Stream implements net.Conn | ||||
|     stream.Write([]byte("ping")) | ||||
| } | ||||
|  | ||||
| func server() { | ||||
|     // Accept a TCP connection | ||||
|     conn, err := listener.Accept() | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Setup server side of yamux | ||||
|     session, err := yamux.Server(conn, nil) | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Accept a stream | ||||
|     stream, err := session.Accept() | ||||
|     if err != nil { | ||||
|         panic(err) | ||||
|     } | ||||
|  | ||||
|     // Listen for a message | ||||
|     buf := make([]byte, 4) | ||||
|     stream.Read(buf) | ||||
| } | ||||
|  | ||||
| ``` | ||||
|  | ||||
| --- | ||||
| The last gx published version of this module was: 1.1.5: QmUNMbRUsVYHi1D14annF7Rr7pQAX7TNLwpRCa975ojKnw | ||||
		Reference in New Issue
	
	Block a user
	 anthonyrawlins
					anthonyrawlins