Releases: cloudflare/quiche
Releases · cloudflare/quiche
🤕 0.8.1
Highlights:
- The
ConnectionError
structure's fields are now properly accessible by applications. - The HTTP/3
Finished
event is not triggered multiple times even if a msbehaving application repeatedly calls therecv_body()
method afterError::Done
is returned.
Full changelog at 0.8.0...0.8.1
🔥 0.8.0
Breaking Changes:
- The HTTP/3
Data
andDatagram
events are now edge-triggered like the other HTTP/3 events. This means that they will only be reported by thepoll()
method once. Applications will need to consume all the data buffered for those events' triggers to be re-armed.
Highlights:
STOP_SENDING
andRESET_STREAM
frames are now sent whenever a stream is shut down.- Outgoing QUIC packets are coalesced into the same UDP payload when possible.
- Added a few additional
Connection
helper methods:max_send_udp_payload_size()
,peer_error()
,source_id()
,destination_id()
. - Many bug fixes and performance improvements.
Full changelog at 0.7.0...0.8.0
☃️ 0.7.0
Breaking Changes:
- The
Config::set_max_udp_payload_size()
method was renamed toConfig::set_max_recv_udp_payload_size()
. - Updated public APIs to use the
ConnectionId
type:accept()
,connect()
,negotiate_version()
,retry()
,Header
. - The FFI API has been disabled by default. It can be enabled during build by enabling the
ffi
feature (cargo build --features ffi ...
). - The
Connection::recv()
method will returnError::BufferTooShort
if an empty buffer is supplied.
Highlights:
- Optimized STREAM frame generation to reduce number of allocations and copies.
- Added
Config::set_max_send_udp_payload_size()
method to configure maximumg UDP datagram outgoing size. - Added
Connection
helper methods:is_readable()
,is_draining()
,peer_streams_left_bidi()
,peer_streams_left_uni()
. Config
andConnection
implementSend
+Sync
.- Introduced
ConnectionId
type to represent QUIC connection IDs. - Implemented ABC Slow Start as per RFC3465.
Full changelog at 0.6.0...0.7.0
🎃 0.6.0
Highlights:
- Initial support for the DATAGRAM extension.
- New API for HTTP/3 graceful connection shutdown (GOAWAY).
- Improved congestion control algorithms with appropriate byte counting.
- Many bug fixes and performance improvements..
Full changelog at 0.5.1...0.6.0
🩹 0.5.1
Highlights:
- Fixed potential crash when PTO is triggered
- Relaxed build configuration to avoid failures when building BoringSSL due to spurious warnings.
- Removed dependency on Go and Perl during build.
Full changelog at 0.5.0...0.5.1
🌴 0.5.0
Highlights:
- Support for draft-28 and draft-29 (along draft-27).
- Support for transport streams prioritization, as well as HTTP/3 extensible priorities.
- Many bug fixes and performance improvements.
Full changelog at 0.4.0...0.5.0
🚆 0.4.0
Highlights:
- Support for configuring custom trust stores for validating certificates.
- Support for generating qlog traces.
- Support for sending
DATA_BLOCKED
andSTREAM_DATA_BLOCKED
frames. - CUBIC congestion controller (in addition to the Reno one).
- Support for Hystart++ for both Reno and CUBIC controllers.
- Dropped support for draft versions older than draft-27.
- Many bug fixes and performance improvements.
Full changelog at 0.3.0...0.4.0
🚢 0.3.0
Highlights:
- Support for draft-25 and draft-27 (along draft-23 and -24).
- Preliminary scaffolding for supporting multiple congestion control algorithms.
- Support for newer Android NDKs.
- More aggressive backpressure on stream writes.
- Delivery rate estimation exposed via
Stats
API. - Various bug fixes and performance improvements.
Full changelog at 0.2.0...0.3.0
🚀 0.2.0
Highlights:
- Support for draft-24 and draft-23.
- Support for receiving 0-RTT data.
- Loss recovery improvements.
- Misc. bug fixes.
Full changelog at 0.1.0...0.2.0