Quiche Versions Save

🥧 Savoury implementation of the QUIC transport protocol and HTTP/3

0.21.0

2 weeks ago

Highlights:

  • Added initial implementation of path MTU discovery. Note that this feature is experimental and might have bugs.
  • Added support to build against the "quictls" OpenSSL fork. Note that some features (e.g. 0-RTT) do not work yet in this mode.
  • Many more bug fixes and performance improvements.

Full changelog at https://github.com/cloudflare/quiche/compare/0.20.0...0.21.0

0.20.1

1 month ago

⚠️ Security:

  • Added a limit to how many connection IDs are locally queued for retirement. Without the limit an attacker could cause a server to queue an unbounded number of retired connection IDs, leading to a slow but steady increase in memory usage (CVE-2024-1410).
  • Added a limit to the maximum CRYPTO frame data offset that can be buffered. Without the limit an attacker could cause a server to queue an unbounded number of bytes, leading to a slow but steady increase in memory usage (CVE-2024-1765).

Full changelog at https://github.com/cloudflare/quiche/compare/0.20.0...0.20.1

0.19.2

1 month ago

⚠️ Security:

  • Added a limit to how many connection IDs are locally queued for retirement. Without the limit an attacker could cause a server to queue an unbounded number of retired connection IDs, leading to a slow but steady increase in memory usage (CVE-2024-1410).
  • Added a limit to the maximum CRYPTO frame data offset that can be buffered. Without the limit an attacker could cause a server to queue an unbounded number of bytes, leading to a slow but steady increase in memory usage (CVE-2024-1765).

Full changelog at https://github.com/cloudflare/quiche/compare/0.19.1...0.19.2

0.20.0

4 months ago

⚠️ Security:

  • Added a limit to how many PATH_CHALLENGE frames are queued. Without the limit an attacker could cause a server to queue an unbounded number of frames, leading to a slow but steady increase in memory usage (CVE-2023-6193).

Breaking Changes:

Highlights:

  • Many new methods are now exposed via the FFI API that can be used by non-Rust code.
  • Many more bug fixes and performance improvements.

Full changelog at https://github.com/cloudflare/quiche/compare/0.19.0...0.20.0

0.19.1

4 months ago

⚠️ Security:

  • Added a limit to how many PATH_CHALLENGE frames are queued. Without the limit an attacker could cause a server to queue an unbounded number of frames, leading to a slow but steady increase in memory usage (CVE-2023-6193).

Full changelog at https://github.com/cloudflare/quiche/compare/0.19.0...0.19.1

0.19.0

5 months ago

Breaking Changes:

Highlights:

  • Added experimental support for the BBRv2 congestion control algorithm. ⚠️ Note that more work is needed on this (particularly implementing changes to update to the newer BBRv3), so it's not quite production-ready yet, and will later be merged with the existing BBRv1 implementation.
  • Added Connection::peer_transport_params() which returns TransportParams representing the connection's peer's transport parameters.
  • Many more bug fixes and performance improvements.

Full changelog at https://github.com/cloudflare/quiche/compare/0.18.0...0.19.0

0.18.0

8 months ago

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 and h3::Connection::dgram_send() / h3::Connection::dgram_recv() / h3::Connection::dgram_max_writable_len() methods). Applications should use the transport-level APIs Connection::dgram_send() and Connection::dgram_recv() (see this change for example).
  • Replaced Config::with_boring_ssl_ctx() with Config::with_boring_ssl_ctx_builder() which takes a SslContextBuilder rather than SslContext 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, and Connection::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 https://github.com/cloudflare/quiche/compare/0.17.2...0.18.0

0.17.2

11 months ago

Highlights:

Full changelog at https://github.com/cloudflare/quiche/compare/0.17.1...0.17.2

0.17.1

1 year ago

Breaking Changes:

  • The minimum required rust version was bumped to 1.66.

Highlights:

Full changelog at https://github.com/cloudflare/quiche/compare/0.16.0...0.17.1

0.16.0

1 year ago

Highlights:

  • Added Config::enable_pacing() to control whether pacing should be enabled.
  • A few bug fixes (some for issues introduced in the previous release).

Full changelog at https://github.com/cloudflare/quiche/compare/0.15.0...0.16.0