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 Kowalski2 min read
Published
Listen to this article0:00 min
Share this article:
webrtc-rs publishes v0.20.0-alpha.1 ground-up rewrite on Sans-I/O core, runtime-agnostic
Source: preview.redd.it

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

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.

Know something we missed? Have a correction or additional information?

Submit a Tip
Your Topic
Today's stories
Updated daily by AI

Name any topic. Get daily articles.

You pick the subject, AI does the rest.

Start Now - Free

Ready in 2 minutes

Discussion

More Rust Programming News