tauri-plugin-rtc
A lightweight, native WebRTC plugin for Tauri that brings RTCPeerConnection, RTCDataChannel, and related WebRTC APIs to desktop applications. Designed as a drop-in bridge between Tauri and Rust’s webrtc-rs stack, providing an easy, familiar API for real-time communication (audio, video, and data) in your Tauri apps.
This plugin is built on top of webrtc-rs crate — a full, native Rust implementation of the WebRTC stack based on Google's C++ WebRTC project.
https://w3c.github.io/webrtc-pc/
| Platform | Supported |
|---|---|
| Linux | not tested |
| Windows | not tested |
| macOS | not tested |
| Android | not tested |
| iOS | not tested |
This project aims to closely follow the official W3C WebRTC specification to ensure correctness, predictability, and compatibility with standard WebRTC behavior.
The API surface, state transitions, and semantics are based on the W3C WebRTC 1.0 specification:
- W3C WebRTC PeerConnection API
https://w3c.github.io/webrtc-pc/
The W3C specification is treated as the normative reference, especially for:
- API shape and naming
- Read-only vs mutable properties
- Nullability and lifecycle behavior
- State machines and invariants
For explanatory material, usage examples, and practical guidance, this project also references:
- MDN Web Docs – WebRTC API
https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API
MDN is used as a secondary, non-normative resource, primarily for:
- Human-readable explanations
- Common usage patterns
- Browser behavior notes
The goal of this project is to provide a WebRTC-compatible API surface that:
- Matches W3C WebIDL semantics where applicable
- Feels familiar to developers with browser WebRTC experience
- Balances specification fidelity with practical TypeScript ergonomics
Where deviations from the specification exist, they are intentional and documented.
MIT or MIT/Apache 2.0 where applicable.