 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			88 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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
 |