Releases

webrtc-rs publishes v0.20.0-alpha.1 ground-up rewrite on Sans-I/O core, runtime-agnostic

webrtc-rs released webrtc v0.20.0-alpha.1 on March 1, 2026, a ground-up async rewrite built as a thin layer on Sans-I/O rtc that supports Tokio (default) and smol via feature flags.

Nina Kowalski··2 min read
Published
Listen to this article0:00 min
webrtc-rs publishes v0.20.0-alpha.1 ground-up rewrite on Sans-I/O core, runtime-agnostic
Photo illustration

We're excited to share a major milestone for the webrtc-rs project: the first pre-release of webrtc v0.20.0-alpha.1, published March 1, 2026. "Today, that design is reality. v0.20.0-alpha.1 is a ground-up rewrite of the async `webrtc` crate, built as a thin layer on top of the battle-tested Sans-I/O `rtc` protocol core." The release moves the crate off a Tokio-coupled implementation toward a Sans-I/O foundation intended to remove Tokio lock-in.

The alpha foregrounds runtime independence. The project states explicitly: "Runtime Agnostic – Supports Tokio (default) and smol via feature flags. Switching is a one-line Cargo.toml change; your application code stays identical." The release notes and repository snapshots show runtime-tokio and runtime-smol support in this pre-release, with runtime-async-std and runtime-embassy listed in design documents as planned targets and a planned RuntimeFactory trait to let external crates add runtimes without forking.

AI-generated illustration
AI-generated illustration

API parity with the Sans-I/O core is central to the redesign. The announcement promises "Full Async API Parity – Every Sans-I/O `rtc` operation has an `async fn` counterpart: `create_offer`, `create_answer`, `set_local_description`, `add_ice_candidate`, `create_data_channel`, `add_track`, `get_stats`, and more." The async crate is presented as a thin, zero-cost abstraction layer over the rtc core, aiming for clean event handling patterns such as trait-based event handlers and builder patterns while preserving error and configuration types.

For engineers wanting runnable proof, v0.20.0-alpha.1 ships with example coverage: "20 Working Examples – All v0.17.x examples ported: data channels (6 variants), media playback/recording (VP8/VP9/H.264/H.265), simulcast, RTP forwarding, broadcast, ICE restart, insertable streams, and more." The repo snapshot includes an examples folder and the rtc submodule pointer shown as "rtc @ b808b74," indicating the specific core used to validate those examples.

Alpha status brings a long but explicit to-do list. "This is an alpha, here's what's on the roadmap:" followed by items the project enumerated: parity examples to add (ICE-TCP, mDNS, perfect negotiation, trickle ICE variants, RTCP processing, AV1 codec, stats, bidirectional simulcast); ICE improvements tracked as issues #774 (IPv6 gather failures), #777 (graceful socket error recovery), and #778 (localhost STUN timeout); H.265 packetizer/depacketizer fixes in simulcast and H.26x examples tracked in #779; and performance and testing work including benchmarks, browser interop testing, deterministic test suites, and memory leak verification. The repo design docs place Phase 3 core implementation goals in Q3 2026, with deliverables like wrapping rtc::RTCPeerConnection, an I/O loop, async operations, track management, and data channel creation.

Practical migration notes are explicit: v0.17.x is the final Tokio-coupled feature release and is feature frozen; v0.20.0+ is the Sans-I/O migration path. The GitHub snapshot shows active maintenance signals, "Releases 27" and 3,624 commits in the repository excerpt, and the project uses dual MIT + Apache-2.0 licensing. The announcement closes by inviting feedback and contributions through GitHub Discussions, Discord, and the project blog, while the roadmap and Q3 2026 Phase 3 target set clear expectations for the path from alpha to a stable, runtime-agnostic webrtc crate.

This article was produced by Prism’s automated news system from verified source data, official records, and press releases, then run through automated quality and moderation checks before publishing. The system is built and supervised by the people who set the standards it runs under. Read our full AI policy.

Did this article answer your question?

Discussion

More Rust Programming News