We are happy to announce the release of 0.10.0 of Quinn, our pure-Rust implementation of QUIC. This release introduces MTU discovery, updates to the latest version of rustls, improves platform support, and introduces a variety of new features, performance improvements, and bugfixes.
Improvements
- Initial support for PLPMTUD (#1510 with followup in #1529, thanks to @aochagavia)
- Bump rustls to 0.21.0 (#1515, thanks to @cpu)
- Fix: build and tests on FreeBSD 13.2 (#1555, thanks to @Tirka)
- Fail FreeBSD CI if any step fails (#1557, thanks to @Tirka)
- Fragmentation handling improvements (#1547)
- Add missing exports of stats types (#1546)
- Rename config option to
min_mtu
for clarity (#1552) - Duplicate
Transmit
andEcnCodepoint
across -proto and -udp (#1541) - quinn: take
Arc<dyn Runtime>
directly (#1534) - Support external crypto implementations (#1496, thanks to @nmittler)
- Do not require
&mut self
inAsyncUdpSocket::poll_send
(#1519, thanks to @dignifiedquire) - Getters for stream concurrency metrics and related documentation (#1518, thanks to @FlorianUekermann)
- Fallback to not using ECN if
IP_TOS
is not supported (#1516, thanks to @link2xt) - Implement fallback for
sendmmsg
andrecvmmsg
(#1504, thanks to @link2xt) - Borrow
self
in read_to_end, rather than consuming (#1502) - Improve error when connecting with an unsupported version (#1482)
- Fix racy
Endpoint::wait_idle
(#1477) - Re-export
udp::{RecvMeta, UdpState}
forAsyncUdpSocket
(#1476, thanks to @XOR-op) - Route logs via
log
crate by default whentracing
isn't used (#1473) - Fail gracefully on attempts to connect to an unspecified IP address (#1474)
- add FreeBSD
IP_RECVDSTADDR
support (#1447, thanks to @lucifer9)
Documentation
- Allow initial MTU to be specified in bulk benchmark (#1456)
- Document how to close a stream correctly (#1493, thanks to @flub)
- Update wording about QUIC being a draft (#1468, thanks to @zicklag)
- Clarify async runtime support (#1497, thanks to @mxinden)
- Fix usage message (#1484, thanks to @dzvon)
Internal improvements
- Allow benchmarking without packet protection (#1436, thanks to @stormshield-damiend)
- Fix
no-protection
option in perf crate (#1550, thanks to @aochagavia) - Don't rely on sleeping in 0-RTT test (#1522)
- Update deny.toml (#1470, thanks to @NukeManDan)
- Bump quinn-proto version (#1520, thanks to @nmittler)
- Clippy fixes (#1466, thanks to @StygianLightning)
- Bump MSRV to 1.63 (#1548)
On behalf of the Quinn team, @djc and @Ralith, thanks to all contributors!