Implementations

libp2p is composed of many modules and different parts. Here you can see an overview over all the different libraries we develop, along with the status of the implementation.

cube_shape
Transports
Interface
Browser JS Node.js Go Rust
libp2p-tcp
libp2p-quic
libp2p-websockets
libp2p-webrtc-star
libp2p-webrtc-direct
libp2p-udp
libp2p-utp
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Stream muxers
Interface
Browser JS Node.js Go Rust
libp2p-spdy
libp2p-multiplex
libp2p-yamux
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Crypto channels
Browser JS Node.js Go Rust
libp2p-secio
libp2p-tls
libp2p-noise
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Connection & Connection Upgrades
Browser JS Node.js Go Rust
libp2p-conn
half-closed-connection-upgrade
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Peer routing
Interface
Browser JS Node.js Go Rust
libp2p-kad-dht
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Record stores
Interface
Browser JS Node.js Go C# Rust
record
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
NAT Traversal
Browser JS Node.js Go
libp2p-nat
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Discovery
Interface
Browser JS Node.js Go Rust
bootstrap
random-walk
mdns-discovery
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
General Purpose Utils & Datatypes
Browser JS Node.js Go Rust
crypto
libp2p-ping
libp2p-peer-id
libp2p-peer-info
libp2p-peer-book
libp2p-swarm
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Others
Browser JS Node.js Go Rust
libp2p-floodsub
libp2p-gossipsub
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing