Skip to content

v0.44.0

Compare
Choose a tag to compare
@marten-seemann marten-seemann released this 19 May 03:00
· 42 commits to master since this release
e2fbf3c

v0.44 contains a lot of fixes related to HTTP Datagrams, new logic to determine (and configure) the QUIC packet size, as well as a significant speedup of the various parsers.

HTTP Datagram-related Fixes

The last release introduced support for HTTP Datagrams (RFC 9297). This release resolves a number of problems we discovered in the initial implementation:

  • reject sending of DATAGRAM frames that exceed the currently available MTU (#4497)
  • http3: deadline errors are now ignored in stream state tracking (#4495)
  • http3: refuse to send HTTP datagrams associated with a closed stream (#4488)
  • http3: use the send stream context for tracking the stream state (#4489)
  • http3: fix memory leak caused by stream state tracking (#4523). Thanks to @GeorgeMac for debugging and fixing!

QUIC Packet Size and Path MTU Discovery

  • The initial packet size is now configurable via quic.Config. Most users should not use this config option, but instead rely on Path MTU discovery (#4503)
  • The client's initial packet size was increased to 1280 bytes (#4500)
  • Respect the client's max_udp_payload_size transport parameter (#4514)
  • qlog: add support for the mtu_updated event (#4517)

Speeding up Parsing the variable-length Integers

The QUIC varint parser was rewritten to act on byte slices instead of a bytes.Reader. This is significantly faster (#4475). The new parser is now used for parsing QUIC frames (#4484), the QUIC packet header (#4481), the QUIC transport parameters (#4483) and HTTP datagrams (#4478).

Other Notable Changes

  • http3: ParseCapsule now returns an io.EOF (and not an io.UnexpectedEOF) if the underlying reader returns an io.EOF on the first byte (#4476)
  • http3: ListenAndServe was renamed to ListenAndServeTLS (#4522). Thanks to @ETZhangSX!
  • http3: reserved frame types now cause a connection error, as required by the RFC (#4467)
  • http3: pass the correct Connection to the ConnContext callback (#4480). Thanks to @rthellend!

quic-go needs your support!

Is your project / company relying on quic-go?
Please consider funding the project. Any support is highly appreciated!

What's Changed

New Contributors

Full Changelog: v0.43.0...v0.44.0