v0.17.0
v0.17.x is the final feature release of the Tokio-coupled async WebRTC implementation.
- v0.17.x branch: A dedicated branch will be created for v0.17.x that will receive bug fixes only (no new features).
- Master branch: Will transition to a new Sans-IO based architecture built on top of webrtc-rs/rtc.
The project is shifting toward a Sans-IO WebRTC implementation that decouples the protocol logic from any specific async runtime. This new architecture will:
- ✅ Support multiple async runtimes (Tokio, smol, async-std, etc.)
- ✅ Provide a clean, protocol-centric Sans-IO core via webrtc-rs/rtc
- ✅ Enable a truly runtime-agnostic, async-friendly WebRTC implementation in Rust
If you need Tokio-specific stability, please use the v0.17.x branch. If you want to adopt the new runtime-agnostic approach, follow development on the master branch.
- Add support for multi codec negotiation by @rainliu in https://github.com/webrtc-rs/webrtc/pull/741
- tokio-test dev-dependencies is used for only webrtc-util by @Razzwan in https://github.com/webrtc-rs/webrtc/pull/742
- chore: fix a typo "dail"->"dial" by @link2xt in https://github.com/webrtc-rs/webrtc/pull/744
- Remove
Seekrequirement for some writers by @Yesterday17 in https://github.com/webrtc-rs/webrtc/pull/743 - Perf: Changed RR and SR ticker behavior to Skip to avoid overdue reports and catchup bursts by @Havunen in https://github.com/webrtc-rs/webrtc/pull/745
- PR Submission for Issue #749 by @Wandalen in https://github.com/webrtc-rs/webrtc/pull/750
- Make psk callback async-capable by @mdelete in https://github.com/webrtc-rs/webrtc/pull/751
- Add markdown files for basic explanation on WebRTC by @amitnos123 in https://github.com/webrtc-rs/webrtc/pull/756
- Document feature flags in lib.rs by @amitnos123 in https://github.com/webrtc-rs/webrtc/pull/759
- Certain enhancements, from my experience I wish I knew sooner by @ris-work in https://github.com/webrtc-rs/webrtc/pull/760
- feat(srtp): add AES CM 256 crypto profiles by @RRRadicalEdward in https://github.com/webrtc-rs/webrtc/pull/764
- refactor(dtls): replace bincode serialization crate with rkyv by @MikeRomaniuk in https://github.com/webrtc-rs/webrtc/pull/767
- feat: Add H.264 High Profile codec support by @sachaarbonel in https://github.com/webrtc-rs/webrtc/pull/768
- Accept unknown bandwidth types in SDP parser per RFC 8866 by @alps3325 in https://github.com/webrtc-rs/webrtc/pull/770
- @Razzwan made their first contribution in https://github.com/webrtc-rs/webrtc/pull/742
- @link2xt made their first contribution in https://github.com/webrtc-rs/webrtc/pull/744
- @Yesterday17 made their first contribution in https://github.com/webrtc-rs/webrtc/pull/743
- @Havunen made their first contribution in https://github.com/webrtc-rs/webrtc/pull/745
- @Wandalen made their first contribution in https://github.com/webrtc-rs/webrtc/pull/750
- @mdelete made their first contribution in https://github.com/webrtc-rs/webrtc/pull/751
- @amitnos123 made their first contribution in https://github.com/webrtc-rs/webrtc/pull/756
- @RRRadicalEdward made their first contribution in https://github.com/webrtc-rs/webrtc/pull/764
- @MikeRomaniuk made their first contribution in https://github.com/webrtc-rs/webrtc/pull/767
- @sachaarbonel made their first contribution in https://github.com/webrtc-rs/webrtc/pull/768
- @alps3325 made their first contribution in https://github.com/webrtc-rs/webrtc/pull/770
Full Changelog: https://github.com/webrtc-rs/webrtc/compare/v0.14.0...v0.17.0
v0.14.0
- Fix handling of AUD NAL units with size 2 by @Kleptine in https://github.com/webrtc-rs/webrtc/pull/670
- fix panics when parsing rtcp packets with invalid block sizes by @TimeToogo in https://github.com/webrtc-rs/webrtc/pull/678
- Implement ChaCha20_Poly1305 cipher suite by @wdouglass in https://github.com/webrtc-rs/webrtc/pull/675
- Make SRTP AES_256_GCM actually work by @TimeToogo in https://github.com/webrtc-rs/webrtc/pull/677
- Fix deadlock in data-channels-flow-control example. by @recap in https://github.com/webrtc-rs/webrtc/pull/679
- Handle replay after wrapping in replaydetector by @anders-avos in https://github.com/webrtc-rs/webrtc/pull/681
- Revert "Fix deadlock in data-channels-flow-control example. " by @rainliu in https://github.com/webrtc-rs/webrtc/pull/682
- stun: simplify MappedAddress Display implement by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/683
- stun: simplify stop_with_error by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/684
- stun: simplify UnknownAttributes Display by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/685
- turn: client binding direct use
Optionvalue by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/686 - turn: use ok_or() to simplify get_allocation() call by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/687
- turn: use ok_or() to simplify command_tx by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/689
- turn: introduced DEFAULT_MAX_RETRIES by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/692
- mdns: simplify resource pack function by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/693
- turn: simplify result_ch_rx by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/691
- dtls: refactor cipher suite error handling with ok_or() by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/694
- style: add blank lines between methods in DTLSConn impl by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/695
- refactor: remove unnecessary Cow::Borrowed wrapper in URL query parsing by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/696
- refactor(ice): replace magic numbers with named constants for STUN/TURN ports by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/697
- stun: use format! macro instead of string concatenation in Uri display by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/698
- ice/examples: improve error handling and formatting in ping_pong example by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/699
- refactor: apply clippy fixes across workspace by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/703
- mdns: allow reuse_port on non-Unix platforms when feature is enabled by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/702
- update dependencies rand by @a-wing in https://github.com/webrtc-rs/webrtc/pull/707
- util: Simplify timeout error handling in Buffer by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/708
- interceptor: Use futures::future::join_all in stats interceptor by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/710
- dtls: Add packet length validation in CBC decryption by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/711
- stun: simplify URI parsing logic by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/712
- do not used fixed sctp-ports 5000, but consult the negotiated ports by @KillingSpark in https://github.com/webrtc-rs/webrtc/pull/706
- interceptor: simplify NACK generator close_rx error handling by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/714
- sctp: Make most chunk handling errors non-fatal by @anders-avos in https://github.com/webrtc-rs/webrtc/pull/716
- Add function to export key data from DTLS connection by @TimeToogo in https://github.com/webrtc-rs/webrtc/pull/718
- [ice] Fix unhandled overflow panic in
listen_udp_in_port_rangeby @lucamuscat in https://github.com/webrtc-rs/webrtc/pull/719 - fmtp: add Unicode case-folding support for parameter compariso by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/721
- Make use of the
max-message-sizeSDP attribute in datachannels by @lucamuscat in https://github.com/webrtc-rs/webrtc/pull/722 - stun: simplify XorMappedAddress Display implementation by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/725
- Updated logo background by @mvel96 in https://github.com/webrtc-rs/webrtc/pull/730
- stun: simplify connection retrieval by @cppcoffee in https://github.com/webrtc-rs/webrtc/pull/731
- Require
randversion 0.9.1 or greater, asrand::distr::Alphabeticdoes not exist in0.9.0, which is currently allowed by @lucamuscat in https://github.com/webrtc-rs/webrtc/pull/732 - Remove unused dependencies by @lucamuscat in https://github.com/webrtc-rs/webrtc/pull/733
- sample_builder: fix panic on timestamp wrap by @ArtemMartus in https://github.com/webrtc-rs/webrtc/pull/735
- @Kleptine made their first contribution in https://github.com/webrtc-rs/webrtc/pull/670
- @TimeToogo made their first contribution in https://github.com/webrtc-rs/webrtc/pull/678
- @wdouglass made their first contribution in https://github.com/webrtc-rs/webrtc/pull/675
- @cppcoffee made their first contribution in https://github.com/webrtc-rs/webrtc/pull/683
- @lucamuscat made their first contribution in https://github.com/webrtc-rs/webrtc/pull/719
- @ArtemMartus made their first contribution in https://github.com/webrtc-rs/webrtc/pull/735
Full Changelog: https://github.com/webrtc-rs/webrtc/compare/v0.13.0...v0.14.0
v0.13.0
- revert the support of Aes128CmHmacSha1_32 and AeadAes256Gcm
- peer_connection: Only warn about unhandled incmoing RTP track by @haaspors in https://github.com/webrtc-rs/webrtc/pull/642
- Remove unused ErrTurnCredentials as it is no longer used. It was used… by @ris-work in https://github.com/webrtc-rs/webrtc/pull/644
- ice: Fix USE-CANDIDATE in controlled agent by @anders-avos in https://github.com/webrtc-rs/webrtc/pull/647
- track_local: Get rid of some unnecessary Mutexes and Options by @haaspors in https://github.com/webrtc-rs/webrtc/pull/646
- stun client: remove unnecessary mut by @petar-dambovaliev in https://github.com/webrtc-rs/webrtc/pull/652
- peer_connection: Make sure all packets are read through interceptor by @haaspors in https://github.com/webrtc-rs/webrtc/pull/648
- Use any available curve for dtls connection by @Mierunski in https://github.com/webrtc-rs/webrtc/pull/654
- docs: update Stream logo with latest brand asset by @tyaga001 in https://github.com/webrtc-rs/webrtc/pull/655
- updating the throughput calculation in data_channel_flow_control by @recap in https://github.com/webrtc-rs/webrtc/pull/659
- Fix: Invoke onClose handler upon receiving a notification by @harry0349 in https://github.com/webrtc-rs/webrtc/pull/666
- Change MIME_TYPE_HEVC from video/HEVC to video/H265 (#141) by @bzld-acn in https://github.com/webrtc-rs/webrtc/pull/668
- @ris-work made their first contribution in https://github.com/webrtc-rs/webrtc/pull/644
- @petar-dambovaliev made their first contribution in https://github.com/webrtc-rs/webrtc/pull/652
- @Mierunski made their first contribution in https://github.com/webrtc-rs/webrtc/pull/654
- @tyaga001 made their first contribution in https://github.com/webrtc-rs/webrtc/pull/655
- @recap made their first contribution in https://github.com/webrtc-rs/webrtc/pull/659
- @harry0349 made their first contribution in https://github.com/webrtc-rs/webrtc/pull/666
- @bzld-acn made their first contribution in https://github.com/webrtc-rs/webrtc/pull/668
Full Changelog: https://github.com/webrtc-rs/webrtc/compare/v0.12.0...v0.13.0
v0.6.0
This release contains various improvements and bug fixes.
The full changelog is available here.
Notably, big chunks of the API level interfaces have changed from async to sync which should be an ergonomic improvement for everyone, thanks to @alexlapa for their work on this.
With this version we've adopted a MSRV(minimum supported rust version) policy. Namely, we support versions of the Rust compiler released in the last six months. This is a minimum and we don't aim to drop support aggressively, but if you are running an older version there is always a risk that we'll drop support for it. Changes to the minimum Rust version will not be breaking from a semver perspective.
- @algesten
- @alexlapa
- @ericfont
- @karaziox
- @KokaKiwi
- @k0nserv
- @melekes
- @KillingSpark
- @llacqie
- @logist322
Thanks to all contributors who helped make this release happen 🎉