Skip to content

webrtc-rs/webrtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebRTC.rs

License: MIT/Apache 2.0 Discord Twitter

Async-friendly WebRTC implementation in Rust

Sponsored with 💖 by

Gold Sponsors:
Recall.ai

Silver Sponsors:
Stream Chat
ChannelTalk
Bronze Sponsors:
AdrianEddy

Table of Content

Overview

WebRTC.rs is an async-friendly WebRTC implementation in Rust, originally inspired by and largely rewriting the Pion stack. The project is under active development and should be considered early stage; please refer to the Roadmap for planned milestones and releases. The Examples demonstrate how to build media and data-channel applications using webrtc-rs.

The project is shifting its focus toward a Sans-IO WebRTC implementation in Rust. Going forward, the webrtc-rs/webrtc crate will be built on top of the webrtc-rs/rtc crate, which provides a clean, protocol-centric Sans-IO core. This architecture enables a fully async-friendly WebRTC implementation in Rust.

Features

WebRTC
Media Interceptor Data
RTP RTCP SRTP SCTP
DTLS
mDNS STUN TURN ICE
SDP Util

WebRTC Crates Dependency Graph

WebRTC Stack

Building

All webrtc dependent crates and examples are included in this repository at the top level in a Cargo workspace.

To build all webrtc examples:

cd examples
cargo test # build all examples (maybe very slow)
#[ or just build single example (much faster)
cargo build --example play-from-disk-vpx # build play-from-disk-vpx example only
cargo build --example play-from-disk-h264 # build play-from-disk-h264 example only
#...
#]

To build webrtc crate:

cargo build [or clippy or test or fmt]

Open Source License

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.

Contributing

Contributors or Pull Requests are Welcome!!!