Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/webrtc-rs/webrtc

A pure Rust implementation of WebRTC
https://github.com/webrtc-rs/webrtc

rtc rust voip webrtc

Last synced: 14 days ago
JSON representation

A pure Rust implementation of WebRTC

Awesome Lists containing this project

README

        


WebRTC.rs




















License: MIT/Apache 2.0


Discord


Twitter



A pure Rust implementation of WebRTC stack. Rewrite Pion WebRTC stack in Rust


Sponsored with 💖 by


Silver Sponsors:


Stream Chat



ChannelTalk


Bronze Sponsors:


KittyCAD


AdrianEddy

Table of Content

- [Overview](#overview)
- [Features](#features)
- [Building](#building)
- [Toolchain](#toolchain)
- [Monorepo Setup](#monorepo-setup)
- [Open Source License](#open-source-license)
- [Contributing](#contributing)

## Overview

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](https://github.com/webrtc-rs/webrtc/issues/1) to track the major milestones and releases.
[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.

## Features


WebRTC


Media
Interceptor
Data


RTP
RTCP
SRTP
SCTP


DTLS


mDNS
STUN
TURN
ICE


SDP
Util



WebRTC Crates Dependency Graph



WebRTC Stack

## Building

### Toolchain

**Minimum Supported Rust Version:** `1.65.0`

Our 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.

**Note:** Changes to the minimum supported version are not consider breaking from a [semver](https://semver.org/) perspective.

### Monorepo Setup

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

To build all webrtc examples:

```shell
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:

```shell
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 ). 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!!!