mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-05-02 22:22:15 +00:00
[WIP] Central repository for work on libp2p
This repository is the central place for rust development of the libp2p spec.
This readme along with many others will be more fleshed out the closer the project gets to completion. Right now everything including the crate organization is very much Work in Progress.
General overview of the architecture
Architecture of the crates of this repository:
datastore
: Utility library whose API provides a key-value storage with multiple possible backends. Used bypeerstore
.example
: Example usages of this library.libp2p-peerstore
: Generic storage for information about remote peers (their multiaddresses and their public key), with multiple possible backends. Each multiaddress also has a time-to-live. Used bylibp2p-swarm
.libp2p-ping
: Implementation of theping
protocol (the exact protocol is specific to libp2p). Implements theConnectionUpgrade
trait oflibp2p-swarm
.libp2p-secio
: Implementation of thesecio
protocol. Encrypts communications. Implements theConnectionUpgrade
trait oflibp2p-swarm
.libp2p-swarm
: Core library that contains all the traits of libp2p and plugs things together.libp2p-tcp-transport
: Implementation of theTransport
trait oflibp2p-swarm
for TCP/IP.multistream-select
: Implementation of themultistream-select
protocol, which is used to negotiate a protocol over a newly-established connection with a peer, or after a connection upgrade.rw-stream-sink
: Utility library that makes it possible to wrap around a tokioStream + Sink
of bytes and implementsAsyncRead + AsyncWrite
.
Languages
Rust
99.8%
JavaScript
0.2%