libp2p.stream_muxer package¶
Subpackages¶
Submodules¶
libp2p.stream_muxer.abc module¶
-
class
libp2p.stream_muxer.abc.
IMuxedConn
(conn: libp2p.security.secure_conn_interface.ISecureConn, peer_id: libp2p.peer.id.ID)¶ Bases:
abc.ABC
reference: https://github.com/libp2p/go-stream-muxer/blob/master/muxer.go
-
abstract async
accept_stream
() → libp2p.stream_muxer.abc.IMuxedStream¶ accepts a muxed stream opened by the other end.
-
abstract async
close
() → None¶ close connection.
-
event_started
: trio.Event = None¶
-
abstract property
is_closed
¶ check connection is fully closed.
- Returns
true if successful
-
abstract property
is_initiator
¶ if this connection is the initiator.
-
abstract async
open_stream
() → libp2p.stream_muxer.abc.IMuxedStream¶ creates a new muxed_stream.
- Returns
a new
IMuxedStream
stream
-
peer_id
: ID = None¶
-
abstract async
start
() → None¶ start the multiplexer.
-
abstract async
-
class
libp2p.stream_muxer.abc.
IMuxedStream
¶ Bases:
libp2p.io.abc.ReadWriteCloser
-
muxed_conn
: IMuxedConn = None¶
-
abstract async
reset
() → None¶ closes both ends of the stream tells this remote side to hang up.
-
abstract
set_deadline
(ttl: int) → bool¶ set deadline for muxed stream.
- Returns
a new stream
-
libp2p.stream_muxer.exceptions module¶
-
exception
libp2p.stream_muxer.exceptions.
MuxedConnError
¶
-
exception
libp2p.stream_muxer.exceptions.
MuxedStreamClosed
¶
-
exception
libp2p.stream_muxer.exceptions.
MuxedStreamEOF
¶ Bases:
libp2p.stream_muxer.exceptions.MuxedStreamError
,EOFError
-
exception
libp2p.stream_muxer.exceptions.
MuxedStreamError
¶
-
exception
libp2p.stream_muxer.exceptions.
MuxedStreamReset
¶
libp2p.stream_muxer.muxer_multistream module¶
-
class
libp2p.stream_muxer.muxer_multistream.
MuxerMultistream
(muxer_transports_by_protocol: Mapping[NewType.<locals>.new_type, Type[libp2p.stream_muxer.abc.IMuxedConn]])¶ Bases:
object
MuxerMultistream is a multistream stream muxed transport multiplexer.
go implementation: github.com/libp2p/go-stream-muxer-multistream/multistream.go
-
add_transport
(protocol: NewType.<locals>.new_type, transport: Type[libp2p.stream_muxer.abc.IMuxedConn]) → 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 = None¶
-
multiselect_client
: MultiselectClient = None¶
-
async
new_conn
(conn: libp2p.security.secure_conn_interface.ISecureConn, peer_id: libp2p.peer.id.ID) → libp2p.stream_muxer.abc.IMuxedConn¶
-
async
select_transport
(conn: libp2p.network.connection.raw_connection_interface.IRawConnection) → Type[libp2p.stream_muxer.abc.IMuxedConn]¶ 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, TMuxerClass]' = None¶
-