Skip to content

v0.38.0

Compare
Choose a tag to compare
@marten-seemann marten-seemann released this 21 Aug 04:03
· 322 commits to master since this release
824fd8a

Generic Segmentation Offload (GSO)

This release re-enables GSO by default. We shipped GSO support in v0.36.0 (see the release notes for that release for an explanation of what GSO is), but had to disable it due to problems in certain configurations and on certain platforms. We believe that we now manage to properly detect these and automatically fall back to the non-GSO code path (#4005). That said, there are a lot of different systems and configurations around, and kernel GSO support seems to be a bit brittle, so if you encounter any problems, please let us know in an issue.

Demultiplexing QUIC

The QUIC header is designed such that it can easily be demultiplexed from other common UDP-based protocols, such STUN, RTP, TURN, DTLS, etc. (see RFC 9443 for details). In this release, we added a Transport.ReadNonQUICPacket method (#3992) that allows the application to retrieve non-QUIC packets arriving on the underlying UDP socket. The existing Transport.WriteTo can be used to send (non-QUIC) packets.

Other Notable Changes

  • Support for QUIC Datagrams (RFC 9221) is now saved in the session ticket and can be used when doing 0-RTT resumption: #4013
  • crypto/tls errors are now returned on the TransportError and can be obtained using error assertions: #4015
  • The code point for HTTP datagrams (RFC 9297) was changed from the value used for draft versions to the value used in the RFC: #3588
  • For small HTTP responses, the Content-Length header is automatically added: #3989

Changelog

New Contributors

Full Changelog: v0.37.1...v0.38.0