Unclaimed project
Are you a maintainer of quic-go? Claim this project to take control of your public changelog and roadmap.
Claim this projectChangelog
quic-go
A production-ready QUIC implementation in pure Go
Back to changelogNew
v0.58.0
This release optimizes the QUIC handshake:
- Multiple incoming packets are now processed before sending an acknowledgment, reducing the total number of packets sent: #5451
- ACK frames are now packed into coalesced packets, reducing the need to send a separate packet just for the ACK in many cases: #5477
- When packets are buffered during the handshake, this now doesn't lead to inflated RTT measurements anymore: #5493, #5494
Other notable changes
- quic-go now has a new logo: #5484
- ACK frames can now be encoded with up to 64 ranges (previously: 32): #5476
- Serializing ACK frames is now significantly faster: #5476
- Improved batch packet processing logic: #5478
- qlog: added support for the
datagram_id on packet_sent, packet_received and packet_buffered events, using the CRC32 of the packet: #5455
Changelog
- qlog: add a DebugEvent by @marten-seemann in https://github.com/quic-go/quic-go/pull/5456
- qlog the datagram_id for long header and coalesced packets by @marten-seemann in https://github.com/quic-go/quic-go/pull/5455
build(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in https://github.com/quic-go/quic-go/pull/5458handshake: pass cipherSuite by value instead of pointer by @marten-seemann in https://github.com/quic-go/quic-go/pull/5459handshake: add a benchmark for token decoding by @marten-seemann in https://github.com/quic-go/quic-go/pull/5460use synctest in the session resumption test by @marten-seemann in https://github.com/quic-go/quic-go/pull/5424handshake: fix QUIC events with session tickets disabled on Go 1.26 by @marten-seemann in https://github.com/quic-go/quic-go/pull/5462fix flaky TestConnectionCongestionControl by @Copilot in https://github.com/quic-go/quic-go/pull/5467simnet: move latency configuration to Router, simplify queueing logic by @marten-seemann in https://github.com/quic-go/quic-go/pull/5463use synctest for the RTT and reordering tests by @marten-seemann in https://github.com/quic-go/quic-go/pull/5464use synctest for 0-RTT integration tests by @marten-seemann in https://github.com/quic-go/quic-go/pull/5465allow processing of multiple packets before handshake completion by @marten-seemann in https://github.com/quic-go/quic-go/pull/5451ackhandler: disentangle ReceivedPacketHandler and SentPacketHandler by @marten-seemann in https://github.com/quic-go/quic-go/pull/5469refactor connection tests to remove ReceivedPacketHandler mock by @marten-seemann in https://github.com/quic-go/quic-go/pull/5468ackhandler: remove ReceivedPacketHandler interface, use struct directly by @marten-seemann in https://github.com/quic-go/quic-go/pull/5472wire: add a function to trunctate an ACK frame by @marten-seemann in https://github.com/quic-go/quic-go/pull/5476allow packing of ACKs in coalesced packets by @marten-seemann in https://github.com/quic-go/quic-go/pull/5477improve batch packet processing logic by @marten-seemann in https://github.com/quic-go/quic-go/pull/5478build(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in https://github.com/quic-go/quic-go/pull/5482build(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in https://github.com/quic-go/quic-go/pull/5483update the logo by @marten-seemann in https://github.com/quic-go/quic-go/pull/5484ci: add Go 1.26rc1 to tested Go versions by @marten-seemann in https://github.com/quic-go/quic-go/pull/5486utils: make TestAddTimestamp work in all time zones by @marten-seemann in https://github.com/quic-go/quic-go/pull/5492ackhandler: record RTT measurements for non-ack-eliciting packets by @marten-seemann in https://github.com/quic-go/quic-go/pull/5494ackhandler: only generate RTT sample for the last ack-eliciting packet by @marten-seemann in https://github.com/quic-go/quic-go/pull/5493Full Changelog: https://github.com/quic-go/quic-go/compare/v0.57.0...v0.58.0