🔀 0.18.0
Breaking Changes:
- Removed pre-RFC QUIC and HTTP/3 support (specifically for drafts 27, 28 and 29). Now only the final QUIC and HTTP/3 versions are supported.
- Removed the HTTP/3 DATAGRAM API (specifically the
h3::Event::Datagram
enum variant andh3::Connection::dgram_send()
/h3::Connection::dgram_recv()
/h3::Connection::dgram_max_writable_len()
methods). Applications should use the transport-level APIsConnection::dgram_send()
andConnection::dgram_recv()
(see this change for example). - Replaced
Config::with_boring_ssl_ctx()
withConfig::with_boring_ssl_ctx_builder()
which takes aSslContextBuilder
rather thanSslContext
directly, for safety reasons.
Highlights:
- Massively improved the stream prioritization implementation, which is now much more accurate and reliable (this is largely transparent to applications, as the API hasn't changed).
- Added support for the final specification of DATAGRAMs (RFC 9297). Currently both draft and final versions are supported, but the draft support will be removed in a future release.
- Added some APIs to make working with migration and multiple CIDs easier. Specifically
Connection::source_ids()
which returns all active source IDs, andConnection::retired_scids()
which returns the number of retired source IDs that haven't been returned to the application yet. - Added
Config::set_initial_congestion_window_packets()
to configure the initial congestion window size. - Many more bug fixes and performance improvements.
Full changelog at 0.17.2...0.18.0