鈿狅笍 The 0.27.0 release has been yanked and should not be used. The 0.28.0 release is the non-yanked replacement and contains the same quiche crate changes, with only the crate version changed from 0.27.0 to 0.28.0.
Breaking Changes:
- The zero-copy buffer APIs changed.
BufFactorynow includes DATAGRAM buffer support, anddgram_send_vec()/dgram_recv_vec()were replaced byConnection::dgram_send_buf()andConnection::dgram_recv_buf(). Statsand the Cquiche_statsstructure gained counters for receivedSTREAMS_BLOCKEDframes.- qlog output was updated to newer qlog drafts. Applications consuming qlog output may need parser updates for renamed HTTP/3 event types, changed time precision, ACK range serialization, wall-clock reference time, and related schema changes.
Highlights:
- Added
bytes::BufMutreceive APIs viaConnection::stream_recv_buf()andh3::Connection::recv_body_buf(). - Added
Config::set_use_initial_max_data_as_flow_control_win()to use the advertised initial max data as the initial flow-control window, avoiding pathologicalMAX_DATAandMAX_STREAM_DATAupdate behavior with large windows. - Added the CUBIC idle-restart fix, enabled by default, with
Config::set_enable_cubic_idle_restart_fix()and related handshake and C API controls. - Added optional
STREAMS_BLOCKEDsignaling viaConfig::set_enable_send_streams_blocked(). - Updated qlog output to include PTO information and align with newer QUIC and HTTP/3 qlog drafts.
- Other bug fixes and performance improvements.
Full changelog at 0.26.1...0.28.0