#webrtc #libp2p #transport


WebRTC transport for libp2p

4 releases (2 breaking)

0.3.0 Mar 9, 2022
0.2.1 Jan 13, 2022
0.2.0 Nov 16, 2021
0.1.0 Sep 17, 2021

#4 in #signaling

Download history 2/week @ 2022-01-31 1/week @ 2022-02-14 6/week @ 2022-02-21 29/week @ 2022-03-07 15/week @ 2022-03-14 12/week @ 2022-03-21 1/week @ 2022-03-28 5/week @ 2022-04-04 1/week @ 2022-04-11 26/week @ 2022-04-25 29/week @ 2022-05-02 6/week @ 2022-05-09 69/week @ 2022-05-16

130 downloads per month

Apache-2.0 OR MIT and maybe LGPL-2.1

490 lines


License Cargo Documentation

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.


~429K SLoC