Skip to content

馃搹 0.30.0

Latest

Choose a tag to compare

@ghedo ghedo released this 17 Sep 16:16
· 4 commits to master since this release

Breaking Changes:

  • PathEvent is now #[non_exhaustive] and adds PmtuUpdated. Rust applications that exhaustively match path events must add a wildcard arm. C applications should handle QUICHE_PATH_EVENT_PMTU_UPDATED when PMTU discovery is enabled.
  • The supported boring range is now >=4.19,<6, so fresh dependency resolution uses 5.x by default while consumers pinned to 4.19 remain supported. Static C applications linking libquiche.a must use a C++ linker driver or otherwise link the C++ runtime. Boring 5 enables post-quantum groups by default, which can split the ClientHello across multiple Initial packets. Applications that need smaller or deterministic ClientHellos can use Config::set_curves_list() or quiche_config_set_curves_list().

Highlights:

  • Added Connection::stream_readable_len() to report the contiguous bytes currently readable from a stream, up to a caller-supplied limit, without copying data.
  • Fixed connection-level flow-control double counting from zero-length non-FIN STREAM frames, which could close long-running bulk transfers with FLOW_CONTROL_ERROR.
  • Fixed handshake callback configuration being lost when early data was accepted during an in-progress 0-RTT handshake.
  • Fixed cleanup of unknown and empty HTTP/3 unidirectional streams, and compressed completed-stream tracking into ranges to reduce retained memory.
  • Updated intrusive-collections to 0.10.3 for upstream undefined-behavior and atomic-link race fixes affecting stream priority queues.

Full changelog at 0.29.3...0.30.0