progrium / qmux

wire protocol for multiplexing connections or streams into a single connection, based on a subset of the SSH Connection Protocol
MIT License
230 stars 48 forks source link

qmux

qmux is a wire protocol for multiplexing connections or streams into a single connection. It is based on the SSH Connection Protocol, which is the simplest, longest running, most widely deployed TCP multiplexing protocol with flow control.

It is meant as a drop-in layer for any stream capable transport (TCP, WebSocket, stdio, etc) to provide basic multiplexing. This brings any connection API to rough semantic parity with QUIC multiplexing, so it can act as a stopgap or fallback when QUIC is not available. You can then design higher level protocols based on multiplexing semantics that sit on top of QUIC or any other streaming transport with qmux.

Spec

The specification is here. It is a simplified version of the Channel Mechanism in the SSH Connection Protocol.

Implementations

Demos

About

Licensed MIT