Releases: webrtc-rs/webrtc
Releases Β· webrtc-rs/webrtc
v0.20.0-alpha.1
Full Changelog: v0.17.0...v0.20.0-alpha.1
v0.17.1
v0.17.0
π¨ Important Notice: v0.17.0 Release and Future Direction
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.
Why this change?
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.
What's Changed
- Add support for multi codec negotiation by @rainliu in #741
- tokio-test dev-dependencies is used for only webrtc-util by @Razzwan in #742
- chore: fix a typo "dail"->"dial" by @link2xt in #744
- Remove
Seekrequirement for some writers by @Yesterday17 in #743 - Perf: Changed RR and SR ticker behavior to Skip to avoid overdue reports and catchup bursts by @Havunen in #745
- PR Submission for Issue #749 by @Wandalen in #750
- Make psk callback async-capable by @mdelete in #751
- Add markdown files for basic explanation on WebRTC by @amitnos123 in #756
- Document feature flags in lib.rs by @amitnos123 in #759
- Certain enhancements, from my experience I wish I knew sooner by @ris-work in #760
- feat(srtp): add AES CM 256 crypto profiles by @RRRadicalEdward in #764
- refactor(dtls): replace bincode serialization crate with rkyv by @MikeRomaniuk in #767
- feat: Add H.264 High Profile codec support by @sachaarbonel in #768
- Accept unknown bandwidth types in SDP parser per RFC 8866 by @alps3325 in #770
New Contributors
- @Razzwan made their first contribution in #742
- @link2xt made their first contribution in #744
- @Yesterday17 made their first contribution in #743
- @Havunen made their first contribution in #745
- @Wandalen made their first contribution in #750
- @mdelete made their first contribution in #751
- @amitnos123 made their first contribution in #756
- @RRRadicalEdward made their first contribution in #764
- @MikeRomaniuk made their first contribution in #767
- @sachaarbonel made their first contribution in #768
- @alps3325 made their first contribution in #770
Full Changelog: v0.14.0...v0.17.0
v0.14.0
What's Changed
- Fix handling of AUD NAL units with size 2 by @Kleptine in #670
- fix panics when parsing rtcp packets with invalid block sizes by @TimeToogo in #678
- Implement ChaCha20_Poly1305 cipher suite by @wdouglass in #675
- Make SRTP AES_256_GCM actually work by @TimeToogo in #677
- Fix deadlock in data-channels-flow-control example. by @recap in #679
- Handle replay after wrapping in replaydetector by @anders-avos in #681
- Revert "Fix deadlock in data-channels-flow-control example. " by @rainliu in #682
- stun: simplify MappedAddress Display implement by @cppcoffee in #683
- stun: simplify stop_with_error by @cppcoffee in #684
- stun: simplify UnknownAttributes Display by @cppcoffee in #685
- turn: client binding direct use
Optionvalue by @cppcoffee in #686 - turn: use ok_or() to simplify get_allocation() call by @cppcoffee in #687
- turn: use ok_or() to simplify command_tx by @cppcoffee in #689
- turn: introduced DEFAULT_MAX_RETRIES by @cppcoffee in #692
- mdns: simplify resource pack function by @cppcoffee in #693
- turn: simplify result_ch_rx by @cppcoffee in #691
- dtls: refactor cipher suite error handling with ok_or() by @cppcoffee in #694
- style: add blank lines between methods in DTLSConn impl by @cppcoffee in #695
- refactor: remove unnecessary Cow::Borrowed wrapper in URL query parsing by @cppcoffee in #696
- refactor(ice): replace magic numbers with named constants for STUN/TURN ports by @cppcoffee in #697
- stun: use format! macro instead of string concatenation in Uri display by @cppcoffee in #698
- ice/examples: improve error handling and formatting in ping_pong example by @cppcoffee in #699
- refactor: apply clippy fixes across workspace by @cppcoffee in #703
- mdns: allow reuse_port on non-Unix platforms when feature is enabled by @cppcoffee in #702
- update dependencies rand by @a-wing in #707
- util: Simplify timeout error handling in Buffer by @cppcoffee in #708
- interceptor: Use futures::future::join_all in stats interceptor by @cppcoffee in #710
- dtls: Add packet length validation in CBC decryption by @cppcoffee in #711
- stun: simplify URI parsing logic by @cppcoffee in #712
- do not used fixed sctp-ports 5000, but consult the negotiated ports by @KillingSpark in #706
- interceptor: simplify NACK generator close_rx error handling by @cppcoffee in #714
- sctp: Make most chunk handling errors non-fatal by @anders-avos in #716
- Add function to export key data from DTLS connection by @TimeToogo in #718
- [ice] Fix unhandled overflow panic in
listen_udp_in_port_rangeby @lucamuscat in #719 - fmtp: add Unicode case-folding support for parameter compariso by @cppcoffee in #721
- Make use of the
max-message-sizeSDP attribute in datachannels by @lucamuscat in #722 - stun: simplify XorMappedAddress Display implementation by @cppcoffee in #725
- Updated logo background by @mvel96 in #730
- stun: simplify connection retrieval by @cppcoffee in #731
- Require
randversion 0.9.1 or greater, asrand::distr::Alphabeticdoes not exist in0.9.0, which is currently allowed by @lucamuscat in #732 - Remove unused dependencies by @lucamuscat in #733
- sample_builder: fix panic on timestamp wrap by @ArtemMartus in #735
New Contributors
- @Kleptine made their first contribution in #670
- @TimeToogo made their first contribution in #678
- @wdouglass made their first contribution in #675
- @cppcoffee made their first contribution in #683
- @lucamuscat made their first contribution in #719
- @ArtemMartus made their first contribution in #735
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- revert the support of Aes128CmHmacSha1_32 and AeadAes256Gcm
- peer_connection: Only warn about unhandled incmoing RTP track by @haaspors in #642
- Remove unused ErrTurnCredentials as it is no longer used. It was used⦠by @ris-work in #644
- ice: Fix USE-CANDIDATE in controlled agent by @anders-avos in #647
- track_local: Get rid of some unnecessary Mutexes and Options by @haaspors in #646
- stun client: remove unnecessary mut by @petar-dambovaliev in #652
- peer_connection: Make sure all packets are read through interceptor by @haaspors in #648
- Use any available curve for dtls connection by @Mierunski in #654
- docs: update Stream logo with latest brand asset by @tyaga001 in #655
- updating the throughput calculation in data_channel_flow_control by @recap in #659
- Fix: Invoke onClose handler upon receiving a notification by @harry0349 in #666
- Change MIME_TYPE_HEVC from video/HEVC to video/H265 (#141) by @bzld-acn in #668
New Contributors
- @ris-work made their first contribution in #644
- @petar-dambovaliev made their first contribution in #652
- @Mierunski made their first contribution in #654
- @tyaga001 made their first contribution in #655
- @recap made their first contribution in #659
- @harry0349 made their first contribution in #666
- @bzld-acn made their first contribution in #668
Full Changelog: v0.12.0...v0.13.0