Implementations

libp2p is composed of many modules and different parts. Here, overviews are available for all the different libraries, along with the status of each implementation. All sections use the same status legend and link to the implementation's source code.

cube_shape
Supported Implementations
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-implementations
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Transports
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
NAT Traversal
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Secure Communication
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-noise 🔗
libp2p-tls 🔗
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Discovery
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Peer Routing
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-kad-dht 🔗
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Publish/Subscribe
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-floodsub
libp2p-gossipsub 🔗
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Stream Multiplexing
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-yamux 🔗
libp2p-mplex 🔗
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
Storage
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-record
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing
General Purpose Utilities & Datatypes
Go Rust JavaScript (Node) JavaScript (Browser) Nim C++ Swift JVM Python Erlang Zig
libp2p-ping 🔗
libp2p-peer
Done
In Progress / Usable
Prototype / Unstable
Unimplementable / Unsupported
Missing