
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
- useful for nat traversal
- 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
this package contains the source.