Skip to content

v0.12.0

Latest

Choose a tag to compare

@marten-seemann marten-seemann released this 28 Jul 03:32
· 2 commits to master since this release
Immutable release. Only release title and notes can be modified.
23b4cd1

This release updates webtransport-go to draft-16, and adds support for WebTransport flow control and session pooling.

New Features

  • Added WebTransport session flow control for stream counts (WT_MAX_STREAMS and WT_STREAMS_BLOCKED) and total stream data (WT_MAX_DATA and WT_DATA_BLOCKED). Configure initial receive limits with Config.MaxIncomingStreams, Config.MaxIncomingUniStreams, and Config.MaxIncomingData on Transport or Server. Flow control is negotiated only when both peers advertise it and is required for multiple sessions on one connection. Stream-count flow control: #293, #298, #300, #301, #304, #311, #312, #324, #325; data flow control: #329, #331, #332, #333, #340; protocol validation and session pooling: #305, #342
  • Added ClientConn and Transport.NewClientConn, allowing applications to maintain multiple client QUIC connections and establish multiple concurrent WebTransport sessions on each connection. ClientConn also implements http.RoundTripper: #344

Breaking Changes

  • Dialer was renamed to Transport: #343

Other Changes

  • Stream, SendStream, and ReceiveStream now expose StreamID, returning the underlying QUIC stream ID: #347

Notable Fixes

  • SendStream.Write now returns an error after Close or CancelWrite is called while the stream header is being sent asynchronously, preventing payload writes after the stream is closed or canceled: #328
  • Malformed capsules now close the session with H3_DATAGRAM_ERROR: #299
  • Client and server session setup now stops waiting for HTTP/3 SETTINGS when the QUIC connection closes: #346
  • The client now waits for the QUIC handshake and rejects servers that don't support QUIC datagrams or stream reset partial delivery, returning a RequirementsNotMetError: #351

What's Changed

New Contributors

Full Changelog: v0.11.0...v0.12.0