libp2p.stream_muxer package

Subpackages

Submodules

libp2p.stream_muxer.exceptions module

exception libp2p.stream_muxer.exceptions.MuxedConnError

Bases: BaseLibp2pError

exception libp2p.stream_muxer.exceptions.MuxedConnUnavailable

Bases: MuxedConnError

exception libp2p.stream_muxer.exceptions.MuxedStreamClosed

Bases: MuxedStreamError

exception libp2p.stream_muxer.exceptions.MuxedStreamEOF

Bases: MuxedStreamError, EOFError

exception libp2p.stream_muxer.exceptions.MuxedStreamError

Bases: BaseLibp2pError

exception libp2p.stream_muxer.exceptions.MuxedStreamReset

Bases: MuxedStreamError

libp2p.stream_muxer.muxer_multistream module

class libp2p.stream_muxer.muxer_multistream.MuxerMultistream(muxer_transports_by_protocol: Mapping[TProtocol, type[object]], negotiate_timeout: int = 30)

Bases: object

MuxerMultistream is a multistream stream muxed transport multiplexer.

go implementation: github.com/libp2p/go-stream-muxer-multistream/multistream.go

add_transport(protocol: TProtocol, transport: type[object]) None

Add a protocol and its corresponding transport to multistream- select(multiselect). The order that a protocol is added is exactly the precedence it is negotiated in multiselect.

Parameters:
  • protocol – the protocol name, which is negotiated in multiselect.

  • transport – the corresponding transportation to the protocol.

multiselect: Multiselect
multiselect_client: MultiselectClient
negotiate_timeout: int
async new_conn(conn: ISecureConn, peer_id: ID) IMuxedConn
async select_transport(conn: IRawConnection) type[object]

Select a transport that both us and the node on the other end of conn support and agree on.

Parameters:

conn – conn to choose a transport over

Returns:

selected muxer transport

transports: OrderedDict[TProtocol, type[object]]

Module contents