SMUX is a stream multiplexing library for Go that lets multiple logical streams share one reliable underlying connection. It is designed for transports such as TCP or KCP, where ordering and reliability are already provided by the lower layer. The library uses sessions, streams, and frames to manage many independent data flows over a single connection. It focuses on controlled memory usage, smooth receiving behavior, fair traffic shaping, and small protocol overhead. Its design includes a session-wide receive buffer, minimized 8-byte headers, and per-stream sliding windows in newer protocol versions. smux is especially useful for networking software that needs efficient connection management without opening a separate socket for every stream.

Features

  • Multiplexes many logical streams over one connection
  • Works over reliable ordered transports such as TCP or KCP
  • Uses sessions, streams, and frames for structured transport control
  • Provides token bucket controlled receiving
  • Uses a shared session-wide receive buffer for predictable memory usage
  • Includes fair queue traffic shaping and per-stream sliding windows

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

MIT License

Follow SMUX

SMUX Web Site

Other Useful Business Software
Stop vibe-debugging. Icon
Stop vibe-debugging.

Plug Claude into your app's actual errors.

AppSignal's MCP server hands Claude, Cursor, or Zed your real errors, traces, and the deploy that shipped them. AI writes the fix; you review the diff.
Free 30 days.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of SMUX!

Additional Project Details

Programming Language

Go

Related Categories

Go Libraries

Registered

18 hours ago