| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | 21-Oct-2025 | - | ||||
| .github/ | H | 22-Aug-2023 | - | 251 | 231 | |
| constraints/ | H | 22-Aug-2023 | - | 12,636 | 9,678 | |
| data/ | H | 22-Aug-2023 | - | 2,606 | 2,003 | |
| doc/ | H | 22-Aug-2023 | - | |||
| dtls/ | H | 22-Aug-2023 | - | 16,844 | 13,973 | |
| examples/ | H | 22-Aug-2023 | - | 8,203 | 5,930 | |
| ice/ | H | 22-Aug-2023 | - | 14,398 | 11,172 | |
| interceptor/ | H | 22-Aug-2023 | - | 8,049 | 6,533 | |
| mdns/ | H | 22-Aug-2023 | - | 4,713 | 3,843 | |
| media/ | H | 22-Aug-2023 | - | 5,400 | 4,284 | |
| rtcp/ | H | 22-Aug-2023 | - | 9,983 | 7,745 | |
| rtp/ | H | 22-Aug-2023 | - | 7,229 | 5,548 | |
| sctp/ | H | 22-Aug-2023 | - | 15,977 | 11,762 | |
| sdp/ | H | 22-Aug-2023 | - | 3,605 | 2,838 | |
| srtp/ | H | 22-Aug-2023 | - | 3,467 | 2,706 | |
| stun/ | H | 22-Aug-2023 | - | 5,830 | 4,574 | |
| turn/ | H | 22-Aug-2023 | - | 8,975 | 6,991 | |
| util/ | H | 22-Aug-2023 | - | 10,450 | 8,232 | |
| webrtc/ | H | 22-Aug-2023 | - | 24,404 | 18,570 | |
| .gitignore | H A D | 22-Aug-2023 | 404 | 18 | 14 | |
| .gitmodules | H A D | 22-Aug-2023 | 0 | |||
| Cargo.lock | H A D | 22-Aug-2023 | 71.8 KiB | 3,109 | 2,800 | |
| Cargo.toml | H A D | 22-Aug-2023 | 277 | 24 | 22 | |
| LICENSE-APACHE | H A D | 22-Aug-2023 | 10.6 KiB | 202 | 169 | |
| LICENSE-MIT | H A D | 22-Aug-2023 | 1 KiB | 22 | 17 | |
| README.md | H A D | 22-Aug-2023 | 8.1 KiB | 143 | 119 | |
| codecov.yml | H A D | 22-Aug-2023 | 421 | 24 | 22 | |
| tags | H A D | 22-Aug-2023 | 254.1 MiB |
README.md
1<h1 align="center"> 2 <a href="https://webrtc.rs"><img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/webrtc.rs.png" alt="WebRTC.rs"></a> 3 <br> 4</h1> 5<p align="center"> 6 <a href="https://github.com/webrtc-rs/webrtc/actions"> 7 <img src="https://github.com/webrtc-rs/webrtc/workflows/webrtc/badge.svg?branch=master"> 8 </a> 9 <a href="https://codecov.io/gh/webrtc-rs/webrtc"> 10 <img src="https://codecov.io/gh/webrtc-rs/webrtc/branch/master/graph/badge.svg"> 11 </a> 12 <a href="https://deps.rs/repo/github/webrtc-rs/webrtc"> 13 <img src="https://deps.rs/repo/github/webrtc-rs/webrtc/status.svg"> 14 </a> 15 <a href="https://crates.io/crates/webrtc"> 16 <img src="https://img.shields.io/crates/v/webrtc.svg"> 17 </a> 18 <a href="https://docs.rs/webrtc"> 19 <img src="https://docs.rs/webrtc/badge.svg"> 20 </a> 21 <a href="https://doc.rust-lang.org/1.6.0/complement-project-faq.html#why-dual-mitasl2-license"> 22 <img src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue" alt="License: MIT/Apache 2.0"> 23 </a> 24 <a href="https://discord.gg/4Ju8UHdXMs"> 25 <img src="https://img.shields.io/discord/800204819540869120?logo=discord" alt="Discord"> 26 </a> 27 <a href="https://twitter.com/WebRTCrs"> 28 <img src="https://img.shields.io/twitter/url/https/twitter.com/webrtcrs.svg?style=social&label=%40WebRTCrs" alt="Twitter"> 29 </a> 30</p> 31<p align="center"> 32 A pure Rust implementation of WebRTC stack. Rewrite <a href="http://Pion.ly">Pion</a> WebRTC stack in Rust 33</p> 34 35<p align="center"> 36<strong>Sponsored with by</strong><br> 37</p> 38<p align="center"> 39<strong>Gold Sponsors:</strong><br> 40<a href="https://www.parity.io/" target="_blank"> 41<img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/parity.png" style="height:75px;" alt="Parity Technologies"> 42</a><br> 43<p align="center"> 44<strong>Silver Sponsors:</strong><br> 45<a href="https://getstream.io/?utm_source=https://github.com/webrtc-rs/webrtc&utm_medium=github&utm_content=developer&utm_term=webrtc" target="_blank"> 46<img src="https://stream-blog-v2.imgix.net/blog/wp-content/uploads/f7401112f41742c4e173c30d4f318cb8/stream_logo_white.png?h=50" alt="Stream Chat"> 47</a><br> 48<strong>Bronze Sponsors:</strong><br> 49<a href="https://www.embark-studios.com/" target="_blank"><img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/embark.jpg" alt="embark"></a><br> 50<a href="https://github.com/AdrianEddy" target="_blank">AdrianEddy</a><br> 51<a href="https://avstack.io/?utm_medium=social&utm_source=github&utm_campaign=webrtc-rs-sponsorship" target="_blank"><img src="https://avstack.io/assets/logo-full-lightbg.b880ab9e.svg" alt="AVStack" style="width:12rem"></a> 52</p> 53 54<details> 55<summary><b>Table of Content</b></summary> 56 57- [Overview](#overview) 58- [Features](#features) 59- [Building](#building) 60 - [Toolchain](#toolchain) 61 - [Monorepo Setup](#monorepo-setup) 62- [Open Source License](#open-source-license) 63- [Contributing](#contributing) 64 65</details> 66 67## Overview 68 69WebRTC.rs is a pure Rust implementation of WebRTC stack, which rewrites <a href="https://github.com/pion/webrtc/releases/tag/v3.1.5">Pion</a> stack in Rust. 70This project is still in active and early development stage, please refer to the [Roadmap](https://github.com/webrtc-rs/webrtc/issues/1) to track the major milestones and releases. 71[Examples](https://github.com/webrtc-rs/webrtc/blob/master/examples/examples/README.md) provide code samples to show how to use webrtc-rs to build media and data channel applications. 72 73## Features 74 75<p align="center"> 76 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">WebRTC<a href="https://crates.io/crates/webrtc"><img src="https://img.shields.io/crates/v/webrtc.svg"></a> 77 <br> 78 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">Media<a href="https://crates.io/crates/webrtc-media"><img src="https://img.shields.io/crates/v/webrtc-media.svg"></a> 79 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">Interceptor<a href="https://crates.io/crates/interceptor"><img src="https://img.shields.io/crates/v/interceptor.svg"></a> 80 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">Data<a href="https://crates.io/crates/webrtc-data"><img src="https://img.shields.io/crates/v/webrtc-data.svg"></a> 81 <br> 82 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">RTP<a href="https://crates.io/crates/rtp"><img src="https://img.shields.io/crates/v/rtp.svg"></a> 83 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">RTCP<a href="https://crates.io/crates/rtcp"><img src="https://img.shields.io/crates/v/rtcp.svg"></a> 84 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">SRTP<a href="https://crates.io/crates/webrtc-srtp"><img src="https://img.shields.io/crates/v/webrtc-srtp.svg"></a> 85 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">SCTP<a href="https://crates.io/crates/webrtc-sctp"><img src="https://img.shields.io/crates/v/webrtc-sctp.svg"></a> 86 <br> 87 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">DTLS<a href="https://crates.io/crates/webrtc-dtls"><img src="https://img.shields.io/crates/v/webrtc-dtls.svg"></a> 88 <br> 89 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">mDNS<a href="https://crates.io/crates/webrtc-mdns"><img src="https://img.shields.io/crates/v/webrtc-mdns.svg"></a> 90 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">STUN<a href="https://crates.io/crates/stun"><img src="https://img.shields.io/crates/v/stun.svg"></a> 91 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">TURN<a href="https://crates.io/crates/turn"><img src="https://img.shields.io/crates/v/turn.svg"></a> 92 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">ICE<a href="https://crates.io/crates/webrtc-ice"><img src="https://img.shields.io/crates/v/webrtc-ice.svg"></a> 93 <br> 94 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">SDP<a href="https://crates.io/crates/sdp"><img src="https://img.shields.io/crates/v/sdp.svg"></a> 95 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/check.png">Util<a href="https://crates.io/crates/webrtc-util"><img src="https://img.shields.io/crates/v/webrtc-util.svg"></a> 96</p> 97<p align="center"> 98 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/webrtc_crates_dep_graph.png" alt="WebRTC Crates Dependency Graph"> 99</p> 100<p align="center"> 101 <img src="https://raw.githubusercontent.com/webrtc-rs/webrtc/master/doc/webrtc_stack.png" alt="WebRTC Stack"> 102</p> 103 104## Building 105 106### Toolchain 107 108**Minimum Supported Rust Version:** `1.65.0` 109 110Our minimum supported rust version(MSRV) policy is to support versions of the compiler released within the last six months. We don't eagerly bump the minimum version we support, instead the minimum will be bumped on a needed by needed basis, usually because downstream dependencies force us to. 111 112**Note:** Changes to the minimum supported version are not consider breaking from a [semver](https://semver.org/) perspective. 113 114### Monorepo Setup 115 116All webrtc dependent crates and examples are included in this repository at the top level in a Cargo workspace. 117 118To build all webrtc examples: 119 120```shell 121cd examples 122cargo test # build all examples (maybe very slow) 123#[ or just build single example (much faster) 124cargo build --example play-from-disk-vpx # build play-from-disk-vpx example only 125cargo build --example play-from-disk-h264 # build play-from-disk-h264 example only 126#... 127#] 128``` 129 130To build webrtc crate: 131 132```shell 133cargo build [or clippy or test or fmt] 134``` 135 136## Open Source License 137 138Dual 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. 139 140## Contributing 141 142Contributors or Pull Requests are Welcome!!! 143