#webrtc #libp2p #transport

libp2p-webrtc

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

27KB
490 lines

libp2p-webrtc

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.

Quickstart

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()...

..

swarm
    .listen_on(
        "/ip4/127.0.0.1/tcp/8001/ws/p2p-webrtc-star"
            .parse()
            .unwrap(),
    )
    .unwrap();

License

Licensed under either of

at your option.

Contribution

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.

Dependencies

~8–21MB
~429K SLoC