Yamux .NET - Multiplexing for .NET

A high-performance .NET implementation of the HashiCorp Yamux multiplexing protocol.
Multiple reliable, ordered, independent streams over a single underlying connection.

dotnet add package Yamux
Full-duplex multiplexing

Hundreds of logical streams over a single connection. Built on System.IO.Pipelines for high-performance I/O.

Session docs
Channel-based abstraction

IDuplexSessionChannel, IReadOnlySessionChannel, and IWriteOnlySessionChannel for flexible stream management.

Channel docs
Configurable flow control

Automatic window tuning based on RTT. Configurable receive window sizes and upper bounds.

Options docs
Bandwidth statistics

Per-session and per-channel bandwidth tracking with Sampled events and OpenTelemetry metrics integration.

Statistics docs
Pluggable transports

Support for Stream, Socket, IDuplexPipe, or custom ITransport implementations.

Transport docs
High performance

Pooled value task sources, lock-free ID generation, AOT compatible, and native publish support.

Benchmarks