Skip to content

0.9.0

Compare
Choose a tag to compare
@djc djc released this 31 Oct 10:49
· 599 commits to main since this release

We are happy to announce the release of 0.9.0 of Quinn, our pure-Rust implementation of QUIC. This release introduces extensible support for multiple async runtimes, improves Connection API ergonomics, and introduces a variety of new features, performance improvements, and bugfixes.

Important changes

  • Abstract runtime support (#1364, thanks to @yu-re-ka)
  • Replace NewConnection struct with Connection methods (#1357)
  • Replace Incoming stream with Endpoint::accept async method (#1426)

Functional improvements

  • Add additional metrics for lost packets and bytes (#1248, thanks to @Matthias247)
  • Implement draft-ietf-quic-bit-grease-02 (#1286)
  • Allow adjustment of per-connection concurrent stream limits (#1315)
  • Allow initial maximum UDP payload size to be configured (#1379)
  • Configure receive window per connection (#1386, thanks to @lijunwangs)
  • Define Connection::closed() helper to await connection termination (#1396)
  • Expose a getter for the close reason (#1424)
  • Accessor for free datagram send buffer space (#1423)

Performance improvements

Bug fixes

  • Tolerate wide IP_TOS cmsgs (#1274)
  • Identify zero-length connections by four-tuple (#1306)
  • Retry token fixes (#1332)
  • Fix Linux DF bit setting for IPv6-mapped IPv4 addresses (#1381)
  • Fix build errors so quinn-proto can be used under wasm32-unknown-unknown (#1387, thanks to @thombles)
  • Disable IP fragmentation on Windows (#1383)
  • Check QUIC bit in short headers (#1404, thanks to @thekuwayama)
  • Fix stopped streams not issuing ID credit when reset (#1422)

Other improvements

  • Replace futures-util with optional futures-io dep (#1263)
  • Strip down futures-* dependencies (#1273)
  • Reexport UnknownStream (#1268)
  • Replace Broadcast helper with tokio::sync::Notify (#1264)
  • Rely on rustls to check for ALPN failure (#1258)
  • Use config to reject connections rather than extra state (#1247)
  • Adjust link to quinn crate entry point in docs (#1241, thanks to @themaxdavitt)
  • Expose RttEstimator interface publicly (#1243, thanks to @BiagioFesta)
  • Replace fxhash with rustc_hash (#1246)
  • Don't update remote client CIDs gratuitously (#1294)
  • Change overly verbose info span to debug (#1351, thanks @alessandrod)
  • Bump MSRV to 1.59 (#1403)

On behalf of the Quinn team, @djc and @Ralith, thanks to all contributors!