Expand description

This crate implements the Yamux specification.

It multiplexes independent I/O streams over reliable, ordered connections, such as TCP/IP.

The three primary objects, clients of this crate interact with, are:

  • Connection, which wraps the underlying I/O resource, e.g. a socket,
  • Stream, which implements [futures::io::AsyncRead] and [futures::io::AsyncWrite], and
  • Control, to asynchronously control the Connection.


Yamux configuration.

A Yamux connection object.

The Yamux Connection controller.

Byte data produced by the [futures::stream::Stream] impl of Stream.

A multiplexed Yamux stream.

The ID of a stream.


The various error cases a connection may encounter.

Possible errors while decoding a message frame.

Possible errors while decoding a message frame header.

How the connection is used.

Specifies when window update frames are sent.


Turn a Yamux Connection into a [futures::Stream].