Name Date Size #Lines LOC

..21-Oct-2025-

.github/H22-Aug-2023-251231

constraints/H22-Aug-2023-12,6369,678

data/H22-Aug-2023-2,6062,003

doc/H22-Aug-2023-

dtls/H22-Aug-2023-16,84413,973

examples/H22-Aug-2023-8,2035,930

ice/H22-Aug-2023-14,39811,172

interceptor/H22-Aug-2023-8,0496,533

mdns/H22-Aug-2023-4,7133,843

media/H22-Aug-2023-5,4004,284

rtcp/H22-Aug-2023-9,9837,745

rtp/H22-Aug-2023-7,2295,548

sctp/H22-Aug-2023-15,97711,762

sdp/H22-Aug-2023-3,6052,838

srtp/H22-Aug-2023-3,4672,706

stun/H22-Aug-2023-5,8304,574

turn/H22-Aug-2023-8,9756,991

util/H22-Aug-2023-10,4508,232

webrtc/H22-Aug-2023-24,40418,570

.gitignoreH A D22-Aug-2023404 1814

.gitmodulesH A D22-Aug-20230

Cargo.lockH A D22-Aug-202371.8 KiB3,1092,800

Cargo.tomlH A D22-Aug-2023277 2422

LICENSE-APACHEH A D22-Aug-202310.6 KiB202169

LICENSE-MITH A D22-Aug-20231 KiB2217

README.mdH A D22-Aug-20238.1 KiB143119

codecov.ymlH A D22-Aug-2023421 2422

tagsH A D22-Aug-2023254.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