A pure Rust implementation of WebRTC stack. Rewrite Pion WebRTC stack in Rust
Sponsored with 💖 by
Silver Sponsors:

Bronze Sponsors:

AdrianEddy
Table of Content
WebRTC.rs is a pure Rust implementation of WebRTC stack, which rewrites Pion stack in Rust. This project is still in active and early development stage, please refer to the Roadmap to track the major milestones and releases. Examples provide code samples to show how to use webrtc-rs to build media and data channel applications.
     WebRTC
WebRTC
    
     Media
Media
    
 Interceptor
Interceptor
    
 Data
Data
    
     RTP
RTP
    
 RTCP
RTCP
    
 SRTP
SRTP
    
 SCTP
SCTP
    
     DTLS
DTLS
    
     mDNS
mDNS
    
 STUN
STUN
    
 TURN
TURN
    
 ICE
ICE
    
     SDP
SDP
    
 Util
Util
webrtc-rs currently requires Rust 1.55.0+ to build.
All webrtc dependent crates and examples are added as submodules of this repository under /crates/ or /examples/.
git clone https://github.com/webrtc-rs/webrtc
cd webrtc
git submodule update --init --recursive
To build all webrtc dependent crates:
cd webrtc/crates
cargo build [or clippy or test or fmt]
To build all webrtc examples:
cd webrtc/examples
cargo test # build all examples (maybe very slow)
#[ or just build single example (much faster)
cargo build --example play-from-disk-vp8 # build play-from-disk-vp8 example only
cargo build --example play-from-disk-vp9 # build play-from-disk-vp9 example only
#...
#]   
To build webrtc crate:
cd webrtc
cargo build [or clippy or test or fmt]
Follows this instruction about how to replace dependencies with patch for local testing: https://doc.rust-lang.org/edition-guide/rust-2018/cargo-and-crates-io/replacing-dependencies-with-patch.html
Dual licensing under both MIT and Apache-2.0 is the currently accepted standard by the Rust language community and has been used for both the compiler and many public libraries since (see https://doc.rust-lang.org/1.6.0/complement-project-faq.html#why-dual-mitasl2-license). In order to match the community standards, webrtc-rs is using the dual MIT+Apache-2.0 license.
Contributors or Pull Requests are Welcome!!!

 

