New
v0.59.0
This release adds a couple of new features:
- Adds an API to peek stream data on
ReceiveStreamandStream: #5501 - Adds an API to peek the next varint on a stream: #5502
- Reworks the API exposed by the HTTP/3 package for WebTransport: #5509, #5512. Regular HTTP/3 use cases should not be affected by these changes.
- Adds support for HTTP request trailers (trailers sent by the client): #5507
Breaking Changes
- Removes the deprecated
ClientHelloInfo: #5497 - Removes the deprecated
ConnectionTracingIDandConnectionTracingKey: #5521 - http3: the qlogger is now closed after all streams have been handled: #5524
- The
ConnectionStatenow reports both the local and the remote status of the QUIC Datagram and Reliable Stream Reset extensions: #5533
Other Notable Fixes
- Fixes an infinite loop of PING-only packets caused by a bug in the PTO queueing logic: #5538 and #5539
- http3: Fixes a race condition between new request streams and GOAWAY: #5522
- qlog: Fixes a race condition between
RecordEventandClose: #5523
Changelog
- remove deprecated ClientHelloInfo by @marten-seemann in https://github.com/quic-go/quic-go/pull/5497
- expose SetReliableBoundary method on the Stream by @marten-seemann in https://github.com/quic-go/quic-go/pull/5498
- simplify ReceiveStream.Read implementation by @marten-seemann in https://github.com/quic-go/quic-go/pull/5500
- ci: use codecov-action instead of codecov/test-results-action by @Copilot in https://github.com/quic-go/quic-go/pull/5504
- http3: add support for request trailers by @marten-seemann in https://github.com/quic-go/quic-go/pull/5507
- http3: remove stream hijacking API by @marten-seemann in https://github.com/quic-go/quic-go/pull/5508
- http3: remove Hijacker, add Settingser interface by @marten-seemann in https://github.com/quic-go/quic-go/pull/5509
- implement a stream peeking API by @marten-seemann in https://github.com/quic-go/quic-go/pull/5501
- ci: fix Codecov upload by untracking integrationtests before removal by @marten-seemann in https://github.com/quic-go/quic-go/pull/5511
- quicvarint: implement function to peek the next varint by @marten-seemann in https://github.com/quic-go/quic-go/pull/5502
- http3: implement new API to allow fine-grained control of connections by @marten-seemann in https://github.com/quic-go/quic-go/pull/5512
- remove deprecated ConnectionTracingID and ConnectionTracingKey by @marten-seemann in https://github.com/quic-go/quic-go/pull/5521
- http3: fix race between new streams and GOAWAY by @marten-seemann in https://github.com/quic-go/quic-go/pull/5522
- qlogwriter: fix race between RecordEvent and Close by @marten-seemann in https://github.com/quic-go/quic-go/pull/5523
- polish the security policy by @marten-seemann in https://github.com/quic-go/quic-go/pull/5526
- http3: close qlogger after all streams have been handled by @marten-seemann in https://github.com/quic-go/quic-go/pull/5524
- fix flaky TestHTTP3Qlog by @marten-seemann in https://github.com/quic-go/quic-go/pull/5532
- expose local and remote settings in ConnectionState by @marten-seemann in https://github.com/quic-go/quic-go/pull/5533
- ackhandler: fix qlogging of outstanding packet count by @marten-seemann in https://github.com/quic-go/quic-go/pull/5538
- ackhandler: fix counting of packets queued for PTO probing by @marten-seemann in https://github.com/quic-go/quic-go/pull/5539
Full Changelog: https://github.com/quic-go/quic-go/compare/v0.58.0...v0.59.0