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