Skip to content

Releases: quic-go/webtransport-go

v0.10.0

12 Jan 03:27
Immutable release. Only release title and notes can be modified.
9d448b1

Choose a tag to compare

This release updates webtransport-go to use the new API introduced in quic-go v0.59.0 (#221): Instead of "hijacking" streams from the HTTP/3 layer, the underlying QUIC connection is now owned by WebTransport, and webtransport-go dispatches incoming streams to either the HTTP/3 layer or an existing or new WebTransport session.

New Features

Breaking Changes

  • Session.ConnectionState was renamed to SessionState: #189
  • The StreamID method was removed from Stream, SendStream and ReceiveStream: #226
  • The Server now embeds the http3.Server as a pointer (instead of by value): #215

Other Changes

  • The Stream and the SendStream now expose a Context method: #176 (thanks to @Sicilica)
  • Delayed streams for already closed sessions are immediately reset: #235
  • The Session context now uses the request or dial context, allowing the application to attach values to the context: #199
  • When a WebTransport session is closed, streams are reset using the WT_SESSION_GONE error. Stream Read and Write now wait for the WT_CLOSE_SESSION capsule on the CONNECT stream to return a meaningful error: #213

Notable Fixes

  • Closed sessions are now properly cleaned up: #198 (thanks to @rolaechea), #230
  • Session errors are now properly propagated to the stream Read and Write calls: #207
  • The length limit for WT_CLOSE_SESSION capsules is now enforced: #202
  • The dial timeout is now respected while waiting for the server's HTTP/3 settings: #216
  • A 10ms deadline is applied before attempting the WT_CLOSE_SESSION capsule, preventing Session.Close from blocking any longer than 10ms: #224
  • errors.Is error comparisons were fixed for StreamError and SessionError: #204, #205
  • The underlying QUIC connection is now closed when establishing a WebTransport session fails: #236

Changelog

New Contributors

Full Changelog: v0.9.0...v0.10.0

v0.9.0

24 Jun 15:59
088d8b6

Choose a tag to compare

This release updates quic-go to v0.53.0.

What's Changed

Full Changelog: v0.8.0...v0.9.0

v0.8.0

27 Apr 18:32
a08801e

Choose a tag to compare

Features

This release adds support for WebTransport Datagrams (#142). Datagrams are a required feature of WebTransport, therefore there’s no need to negotiate support for it. webtransport-go handles negotiation of QUIC and HTTP/3 datagram support.

Datagrams can be sent by calling SendDatagram on the Session, and received using ReceiveDatagram.

Breaking Changes

  • rename ConnectionError to the SessionError (#134)
  • add a Remote field to the StreamError (#139)

Other Notable Changes

  • block calls to Server.Upgrade until the client’s SETTINGS were received, check for HTTP Datagram support (#146)
  • check the server's SETTINGS before sending the Extended CONNECT request (#151)

quic-go.net: Launching a new Documentation Site

With this release, we're launching a new documentation site for the quic-go projects (quic-go itself, HTTP/3, webtransport-go, and soon, masque-go): quic-go.net.

The documentation site aims to explain the concepts and how they are made accessible using webtransport-go's API.

A lot of work has gone into the documentation already, but we're by no means done yet. The entire source is public in https://github.com/quic-go/docs/, and we're happy about community contributions.

webtransport-go needs your support!

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

Changelog

Full Changelog: v0.7.0...v0.8.0

v0.7.0

23 Mar 21:18
4080cd5

Choose a tag to compare

Breaking Changes

Before v0.7.0, the server (incorrectly) didn't advertise support the Extended CONNECT extension. With quic-go/quic-go#4341, it now does. The client now checks for Extended CONNECT support, and aborts the handshake if the server doesn't support it. This means that v0.7.0 clients are now incompatible with pre-v0.7.0 servers.

What's Changed

New Contributors

Full Changelog: v0.6.0...v0.7.0

v0.6.0

24 Sep 12:38
3697690

Choose a tag to compare

This release still supports WebTransport draft-02, but it already incorporates the extension of the error code space to 32 bits.

This release also updates quic-go to v0.39.0.

Changelog

New Contributors

Full Changelog: v0.5.3...v0.6.0

v0.5.3

18 May 06:44
16472ff

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.2...v0.5.3

v0.5.2

26 Feb 22:41
d259f1d

Choose a tag to compare

What's Changed

Full Changelog: v0.5.1...v0.5.2

v0.5.1

08 Feb 07:46
60e0167

Choose a tag to compare

This release makes sure that we only set the error code once when a session is closed. This also fixes a race condition that would happen when accessing that error.

Changelog

Full Changelog: v0.5.0...v0.5.1

v0.5.0

02 Feb 07:21
9b12168

Choose a tag to compare

Breaking Changes

webtransport-go has moved from the private GitHub account of marten-seemann to a dedicated org, quic-go. Now all the QUIC-related repositories (the various qtls forks of crypto/tls, our QPACK implementation, quic-go etc.) are now all located under this org. Note that this will require users to update the import path in go.mod as well as in Go files. The new import path is github.com/quic-go/webtransport-go.

Changelog

Full Changelog: v0.4.3...v0.5.0

v0.4.2

08 Dec 05:34
1343b92

Choose a tag to compare

What's Changed

Full Changelog: v0.4.1...v0.4.2