Interoperability Status
Real-time interoperability test results across libp2p implementations. These tests verify that different implementations can communicate with each other.
Transport Interoperability
Tests verifying that different transport implementations (TCP, QUIC, WebSocket, etc.) can communicate.
quic-v1
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | 🟢 |
| rust-v0.56 | - | - | - | 🟢 | 🟢 |
tcp - noise - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v2.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v3.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| python-v0.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| rust-v0.56 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
tcp - noise - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v2.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v3.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| python-v0.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| rust-v0.56 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
tcp - tls - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | 🟢 |
| rust-v0.56 | - | - | - | 🟢 | 🟢 |
tcp - tls - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | 🟢 |
| rust-v0.56 | - | - | - | 🟢 | 🟢 |
webrtc-direct
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | - | - |
| rust-v0.56 | - | - | - | - | 🟢 |
ws - noise - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v2.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v3.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| python-v0.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| rust-v0.56 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
ws - noise - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v2.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| js-v3.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| python-v0.x | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
| rust-v0.56 | 🟢 | 🟢 | 🟢 | 🟢 | 🟢 |
ws - tls - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | 🟢 |
| rust-v0.56 | - | - | - | 🟢 | 🟢 |
ws - tls - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | 🟢 |
| rust-v0.56 | - | - | - | 🟢 | 🟢 |
wss - noise - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | 🟢 | - |
| js-v2.x | - | - | - | 🟢 | - |
| js-v3.x | - | - | - | 🟢 | - |
| python-v0.x | - | - | - | 🟢 | - |
| rust-v0.56 | - | - | - | - | - |
wss - noise - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | 🟢 | - |
| js-v2.x | - | - | - | 🟢 | - |
| js-v3.x | - | - | - | 🟢 | - |
| python-v0.x | - | - | - | 🟢 | - |
| rust-v0.56 | - | - | - | - | - |
wss - tls - mplex
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | - |
| rust-v0.56 | - | - | - | - | - |
wss - tls - yamux
|
Dialer
Listener
|
js-v1.x |
js-v2.x |
js-v3.x |
python-v0.x |
rust-v0.56 |
|---|---|---|---|---|---|
| js-v1.x | - | - | - | - | - |
| js-v2.x | - | - | - | - | - |
| js-v3.x | - | - | - | - | - |
| python-v0.x | - | - | - | 🟢 | - |
| rust-v0.56 | - | - | - | - | - |
Performance Benchmarks
Performance measurements across different libp2p implementations, measuring upload and download throughput against baseline tests: iperf, https, and quic-go. These tests run on a single host using Docker containers and a Docker network. The performance numbers are relative to each other and the baselines. This gives us a measurement of the overhead of each implementation and transport.
Hole Punching
Tests verifying NAT traversal capabilities across implementations using relay nodes.
Hole punching test results are not yet available.
Results are generated daily by the libp2p test-plans repository.
These results are generated automatically by the libp2p test-plans repository. View detailed results and contribute to the test suite there.