Skip to main content
21.1k

Interoperability Status

Real-time interoperability test results across libp2p implementations. These tests verify that different implementations can communicate with each other.

Last updated: (view run)

Transport Interoperability

Tests verifying that different transport implementations (TCP, QUIC, WebSocket, etc.) can communicate.

Total: 131
Passed: 131
Failed: 0
🟢 Pass
🔴 Fail
- N/A

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.