This repository is the central place for Rust development of the libp2p spec.
Warning: While we are trying our best to be compatible with other libp2p implementations, we cannot guarantee that this is the case considering the lack of a precise libp2p specifications.
-
Main documentation can be found on https://docs.rs/libp2p.
-
The examples folder contains small binaries showcasing the many protocols in this repository.
-
To report bugs, suggest improvements or request new features please open GitHub issue on this repository.
-
For rust-libp2p specific questions please use the GitHub Discussions forum https://github.com/libp2p/rust-libp2p/discussions.
-
For discussions and questions related to multiple libp2p implementations please use the libp2p Discourse forum https://discuss.libp2p.io.
The main components of this repository are structured as follows:
-
core/
: The implementation oflibp2p-core
with itsNetwork
,Transport
andStreamMuxer
API on which almost all other crates depend. -
transports/
: Implementations of transport protocols (e.g. TCP) and protocol upgrades (e.g. for authenticated encryption, compression, ...) based on thelibp2p-core
Transport
API . -
muxers/
: Implementations of theStreamMuxer
interface oflibp2p-core
, e.g. (sub)stream multiplexing protocols on top of (typically TCP) connections. Multiplexing protocols are (mandatory)Transport
upgrades. -
swarm/
: The implementation oflibp2p-swarm
building onlibp2p-core
with the central interfacesNetworkBehaviour
andProtocolsHandler
used to implement application protocols (seeprotocols/
). -
protocols/
: Implementations of application protocols based on thelibp2p-swarm
APIs. -
misc/
: Utility libraries. -
examples/
: Worked examples of built-in application protocols (seeprotocols/
) with commonTransport
configurations.
(open a pull request if you want your project to be added here)
- https://github.com/paritytech/polkadot
- https://github.com/paritytech/substrate
- https://github.com/sigp/lighthouse
- https://github.com/golemfactory/golem-libp2p
- https://github.com/comit-network
- https://github.com/rs-ipfs/rust-ipfs
- https://github.com/marcopoloprotocol/marcopolo
- https://github.com/ChainSafe/forest