You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As you improve this document, please remove items from the list above.
libp2p Modules Implementations
The libp2p protocols are the protocol stack for the modular libp2p protocols library. These form a p2p-first network stack, with no assumptions, self description, and modular interfaces. More at https://github.com/libp2p/specs/
Legend: 🍏 Done 🍋 In Progress 🍅 Missing 🌰 Not planned
libp2p Node
Go
JS - Node.js
JS - Browser
Rust
libp2p
🍏
🍏
🍏
🍏
Identify Protocol
Go
JS - Node.js
JS - Browser
Rust
Identify
🍏
🍏
🍏
🍅
Transport Protocols
Go
JS - Node.js
JS - Browser
Rust
TCP
🍏
🍏
🍏
🍏
UTP
🍏
🍏
🍏
🍅
UDP
🍏
🍅
🍅
🍅
WebSockets
🍏
🍏
🍏
🍅
WebRTC
🍅
🍏
🍏
🍅
SCTP
🍅
🍅
🍅
🍅
Tor
🍅
🍅
🍅
🍅
i2p
🍅
🍅
🍅
🍅
cjdns
🍅
🍅
🍅
🍅
Bluetooth LE
🍅
🍅
🍅
🍅
Audio TP
🍅
🍅
🍅
🍅
Zerotier
🍅
🍅
🍅
🍅
QUIC
🍅
🍅
🍅
🍅
Stream Muxers
Go
JS - Node.js
JS - Browser
Rust
benchmarks
🍏
🍏
🍏
🍅
muxado
🍏
🍅
🍅
🍅
spdystream
🍏
🍅
🍅
🍅
multiplex
🍏
🍏
🍏
🍅
spdy
🍅
🍏
🍏
🍅
http2
🍅
🍅
🍅
🍅
QUIC
🍅
🍅
🍅
🍅
Switch
Go
JS - Node.js
JS - Browser
Rust
Dialer stack
🍏
🍏
🍏
🍅
Switch
🍏
🍏
🍏
🍅
NAT Traversal
Go
JS - Node.js
JS - Browser
Rust
nat-pmp
🍏
🍅
🍅
🍅
upnp
🍏
🍅
🍅
🍅
ext addr discovery
🍏
🍅
🍅
🍅
STUN-like
🍅
🍅
🍅
🍅
line-switch relay
🍏
🍅
🍅
🍅
pkt-switch relay
🍅
🍅
🍅
🍅
Peer Discovery
Go
JS - Node.js
JS - Browser
Rust
mDNS
🍏
🍏
🍏
🍅
bootstrap list
🍏
🍏
🍏
🍅
DHT query
🍏
🍏
🍏
🍅
PEX
🍅
🍅
🍅
🍅
DNS
🍅
🍅
🍅
🍅
Content Routing
Go
JS - Node.js
JS - Browser
Rust
Kademlia DHT
🍏
🍏
🍏
🍅
pub/sub
🍅
🍅
🍅
🍅
PHT
🍅
🍅
🍅
🍅
Peer Routing
Go
JS - Node.js
JS - Browser
Rust
Kademlia DHT
🍏
🍏
🍏
🍅
pub/sub
🍅
🍅
🍅
🍅
PHT
🍅
🍅
🍅
🍅
Exchange
Go
JS - Node.js
JS - Browser
Rust
HTTP
🍏
🍏
🍏
🍅
Bitswap
🍏
🍏
🍏
🍅
Bittorrent
🍏
🍏
🍏
🍅
Consensus
Go
JS - Node.js
JS - Browser
Rust
Paxos
🌰
🌰
🌰
🌰
Raft
🍅
🍅
🍅
🍅
PBTF
🍅
🍅
🍅
🍅
Nakamoto
🍅
🍅
🍅
🍅
Cross Language Milestones
Standardized interfaces (using a neutral IDL) to define conformance in any language implementation
Interoperability testing framework
Performance Milestones
TODO needs performance milestones
Polish level
The polish level achieved defined how much effort has gone into polishing all the corners of the tools, APIs, documentation, and so on. Early on, things will be much more rough as we need to focus on implementation speed over final polish. As we reach completion of the implementations, we turn our focus towards scalability, stability, and security. After that, we focus on end user polish.
Polish level: alpha - individuals innovators
Polish level: alpha - production for early adopters
Polish level: beta - production for small orgs (in progress)