NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3961 most downloaded on crates.io
Async-friendly WebRTC implementation in Rust
Last release 19 days ago
19 Sep 2026
Release timing varies
gaps range from 9 days to 4 months
Rarely documented
notes for 10 of 55 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
71 releases · first in 2018
[Pre-1.0] G2 — Make the API extensible before freezing it #838 by @rainliu in #849
Full Changelog: v0.20.0...v0.21.0
One column per quarter.
bump version to v0.21.0-rc.1 by @rainliu in #888
bump version to v0.21.0-beta.2 by @rainliu in #881
Full Changelog: v0.21.0-beta.2...v0.21.0-rc.1
bump version to v0.21.0-beta.1 by @rainliu in #879
Full Changelog: v0.21.0-beta.1...v0.21.0-beta.2
ICE restart rebind reuses stale resolved addresses after a network handover and terminates the driver on EADDRNOTAVAIL #874 by @rainliu in #877
bump version to v0.21.0-alpha.1 by @rainliu in #865
Full Changelog: v0.21.0-alpha.1...v0.21.0-alpha.2
[Pre-1.0] G2 — Make the API extensible before freezing it #838 by @rainliu in #849
Full Changelog: v0.20.0...v0.21.0-alpha.1
Full Changelog : v0.20.4...v0.20.5
Full Changelog: v0.20.4...v0.20.5
Full Changelog : v0.20.3...v0.20.4
Full Changelog: v0.20.3...v0.20.4
Full Changelog : v0.20.2...v0.20.3
Full Changelog: v0.20.2...v0.20.3
Full Changelog : v0.20.1...v0.20.2
Full Changelog: v0.20.1...v0.20.2
Full Changelog : v0.20.0...v0.20.1
Full Changelog: v0.20.0...v0.20.1
update example data-channels-flow-control by @zhao-gang in #783
get_stats names by @yexiyue in #828Full Changelog: v0.17.0...v0.20.0
webrtc v0.20.0 is a clean, ergonomic, runtime-agnostic rewrite on top of a Sans-I/O core rtc;perf(driver): burst-read the udp socket to batch the SCTP receive path by @StefanoD in #815
Full Changelog: v0.20.0-rc.3...v0.20.0-rc.4
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
ice: Release TURN allocation even if candidate was already closed by @marcin-p-porebski in #799
Full Changelog: v0.17.1...v0.17.2
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Promote agent lock in ice_gather.rs create_agent() to top level of the function to avoid a race condition. #290 Promote create_agent lock to top of fu
The serialized format for RTCIceCandidateInit has changed to match what the specification i.e. keys are camelCase. #153 Make RTCIceCandidateInit confo
RTCIceCandidateInit has changed to match what the specification i.e. keys are camelCase. #153 Make RTCIceCandidateInit conform to WebRTC spec contributed by jmatss.a=inactive will not stop the transceiver, instead attached senders and receivers will pause. A transceiver can be resurrected by setting direction back to e.g. a=sendrecv. The desired direction can be controlled with the newly introduced public method set_direction on RTCRtpTransceiver.
a=msid line for m= line sections according to the specification. This might be break remote peers that relied on the previous, incorrect, behaviour. This also fixes a bug where an endless negotiation loop could happen. #217 Correct msid handling for RtpSender contributed by k0nservnegotiated: Option<bool> and id: Option<u16> in RTCDataChannelInit there's now a more idiomatic negotiated: Option<u16>. If you have a pre-negotiated data channel simply set negotiated: Some(id) when creating the data channel.
We made various improvements and fixes since 0.4.0, including merging all subcrates into a single git repo. The old crate repos are archived and all development will now happen in https://github.com/webrtc-rs/webrtc/.
We now provide stats reporting via the standardized RTCPeerConnection::get_stats method.
#278 Fix async-global-executor contributed by k0nserv
#276 relax regex version requirement contributed by melekes
#244 Update README.md instructions after monorepo merge contributed by k0nserv
#241 move profile to workspace contributed by xnorpx
#240 Increase timeout to "fix" test breaking contributed by algesten
#239 One repo (again) contributed by algesten
#234 Fix recent clippy lints contributed by k0nserv
#224 update call to DataChannel::accept as per data pr #14 contributed by melekes
#223 dtls_transport: always set remote certificate contributed by melekes
#216 Lower case mime types for comparison in fmpt lines contributed by k0nserv
#211 Helper to trigger negotiation_needed contributed by algesten
#209 MID generator feature contributed by algesten
#208 update deps + loosen some requirements contributed by melekes
#205 data_channel: handle stream EOF contributed by melekes
#204 [peer_connection] allow persistent certificates contributed by melekes
#202 bugfix-Udp connection not close (reopen #174) #195 contributed by shiqifeng2000
#199 Upgrade ICE to 0.7.0 contributed by k0nserv
#194 Add AV1 MimeType and RtpCodecParameters contributed by billylindeman
#188 Improve operations debuggability contributed by k0nserv
#187 Fix SDP for rejected tracks to conform to RFC contributed by k0nserv
#185 Adding some debug and display traits contributed by sevensidedmarble
#179 Fix example names in README contributed by ethagnawl
#176 Time overflow armv7 workaround contributed by frjol
#171 close DTLS conn upon err contributed by melekes
#170 always start sctp contributed by melekes
#167 Add offer/answer/pranswer constructors for RTCSessionDescription contributed by sax
The various sub-crates have been updated as follows:
Their respective change logs are found in the old, now archived, repositories and within their respective CHANGELOG.md files in the monorepo.
A big thanks to all the contributors that have made this release happen:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →