#webrtc #libp2p #transport


WebRTC transport for libp2p

2 unstable releases

0.2.0 Nov 16, 2021
0.1.0 Sep 17, 2021

#223 in WebAssembly

30 downloads per month

Apache-2.0 OR MIT and maybe LGPL-2.1

477 lines


License Cargo Documentation

This currently depends on a fork of rust-libp2p, pending https://github.com/libp2p/rust-libp2p/pull/2245

WebRTC transport for rust-libp2p for both native and WebAssembly (browser). For initiating a connection between two peers, both of them need to connect to the same WebSocket signaling server (via a call to listen_on). Either one can dial the other peer by using the p2p-webrtc-star protocol. Note, that this crate is currently not interoperable with the respective js-libp2p and go-libp2p implementations.

Additional, a signaling server implementation is provided within the crate.


To compile this crate, you need gcc g++ libssl-dev make cmake clang pkg-config.

let base_transport = WebRtcTransport::new(peer_id, vec!["stun:stun.l.google.com:19302"]);
let transport = base_transport.upgrade()...




Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~312K SLoC