Highlights
This release speeds up quic-go by reducing allocations all over the library (see #3526).
In the http3
package, the Server
now exposes a ServeQUICConn
method, allowing users to serve HTTP on a single QUIC connection (#3587).
What's Changed
- use the null tracers in the tracer integration tests by @marten-seemann in #3528
- add DPLPMTUD (RFC 8899) to list of supported RFCs in README by @marten-seemann in #3520
- fix datagram RFC number in documentation for quic.Config by @marten-seemann in #3523
- serialize frames by appending to a byte slice, not to a bytes.Buffer by @marten-seemann in #3530
- reduce allocations of ackhandler.Packet by @marten-seemann in #3525
- use a struct containing an array to represent Connection IDs by @marten-seemann in #3529
- speed up marshaling of transport parameters by @marten-seemann in #3531
- return an error when parsing a too long connection ID from a header by @marten-seemann in #3533
- fix usage of ackhandler.Packet pool for non-ack-eliciting packets by @marten-seemann in #3538
- introduce a separate code paths for Short Header packet handling by @marten-seemann in #3534
- preallocate the message buffers of the ipv4.Message passed to ReadBatch by @marten-seemann in #3541
- remove the wire.ShortHeader in favor of more return values by @marten-seemann in #3535
- split code paths for packing 0-RTT and 1-RTT packets in packet packer by @marten-seemann in #3540
- use a single bytes.Reader for frame parsing by @marten-seemann in #3536
- http3: reduce usage of bytes.Buffer by @marten-seemann in #3539
- prioritize sending ACKs over sending new DATAGRAM frames by @marten-seemann in #3544
- use a sync.Pool for ACK frames by @marten-seemann in #3547
- simplify packing of ACK-only packets by @marten-seemann in #3545
- rename qlog event key_retired to key_discarded by @marten-seemann in #3463
- http3: fix double close of chan when using DontCloseRequestStream by @marten-seemann in #3561
- http3: handle ErrAbortHandler when the handler panics by @shade34321 in #3575
- use a Peek / Pop API for the datagram queue by @marten-seemann in #3582
- reduce max DATAGRAM frame size, so that DATAGRAMs fit in IPv6 packets by @marten-seemann in #3581
- update qtls to versions that include the ec_point_formats fix by @marten-seemann in #3583
- ackhandler: reject duplicate packets in ReceivedPacket by @marten-seemann in #3568
- log the size of buffered packets by @marten-seemann in #3571
- http3: expose ALPN values by @marten-seemann in #3580
- http3: add http3.Server.ServeQUICConn to serve a single QUIC connection by @marten-seemann in #3587
- use a monotonous timer by @marten-seemann in #3570
- don't drop more than 10 consecutive packets in drop test by @marten-seemann in #3584
- migrate to Ginkgo v2, remove benchmark test by @marten-seemann in #3589
- fix version of Ginkgo installed on CI by @marten-seemann in #3591
- update qpack to v0.3.0 by @marten-seemann in #3593
- rename the variable in quic.Config.AllowConnectionWindowIncrease by @marten-seemann in #3602
- http3: add a Context method to the StreamCreator interface by @marten-seemann in #3601
- http3: add a ConnectionState method to the StreamCreator interface by @marten-seemann in #3600
- fix availability signaling of the send queue by @marten-seemann in #3597
New Contributors
- @shade34321 made their first contribution in #3575
Full Changelog: v0.29.0...v0.30.0