Releases: quic-go/webtransport-go
v0.8.0
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
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
- rename the ConnectionError to SessionError by @marten-seemann in #134
- update quic-go, use the new HTTP/3 API by @marten-seemann in #138
- add a Remote field to the StreamError by @marten-seemann in #139
- remove custom qlogger implementation in tests by @marten-seemann in #143
- enable datagram support on the SingleDestinationRoundTripper by @marten-seemann in #144
- gitignore: ignore all qlog files by @marten-seemann in #145
- block Upgrade on HTTP SETTINGS, check for client datagram support by @marten-seemann in #146
- README: link to the new documentation site by @marten-seemann in #148
- update quic-go to v0.43.0 by @marten-seemann in #150
- ci: update ChromeDriver to 124.0.6367.62 in interop test by @marten-seemann in #152
- check the server's SETTINGS before sending the Extended CONNECT request by @marten-seemann in #151
- add support for datagrams by @marten-seemann in #142
Full Changelog: v0.7.0...v0.8.0
v0.7.0
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
- close http3.RoundTripper after test by @hareku in #101
- update quic-go to v0.41.0 by @marten-seemann in #114
- set the H3 WebTransport setting on the client side by @marten-seemann in #105
- ci: update ChromeDriver to v114.0.5735.90 in interop test by @marten-seemann in #123
- enable Dependabot for GitHub Actions by @marten-seemann in #124
- Bump actions/checkout from 3 to 4 by @dependabot in #125
- Bump actions/setup-go from 3 to 5 by @dependabot in #127
- Bump nanasess/setup-chromedriver from 1 to 2 by @dependabot in #126
- Bump actions/setup-python from 4 to 5 by @dependabot in #128
- ci: uci/copy-templates by @web3-bot in #129
- update quic-go to v0.42.0 by @marten-seemann in #119
- check the server's HTTP/3 SETTINGS before initiating a session by @marten-seemann in #120
New Contributors
- @hareku made their first contribution in #101
- @dependabot made their first contribution in #125
Full Changelog: v0.6.0...v0.7.0
v0.6.0
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
- replace the WebTransport offer header if already set by @lleyton in #81
- ci: update interop to accomodate breaking changes in Selenium API by @marten-seemann in #83
- ci: remove automerge workflow by @galargh in #90
- ci: update workflows by @galargh in #91
- bump go.mod to Go 1.20, run go fix, update quic-go to v0.38.1 by @galargh in #92
- switch from unmaintained golang/mock to go.uber.org/mock by @marten-seemann in #95
- extend the error code space to 32 bits by @marten-seemann in #74
- update quic-go to v0.39.0 by @marten-seemann in #96
New Contributors
Full Changelog: v0.5.3...v0.6.0
v0.5.3
What's Changed
- tests: stop using deprecated math/rand.Read by @marten-seemann in #73
- synchronise sending streamHeader by @sukunrt in #78
- release v0.5.3 by @marten-seemann in #79
New Contributors
Full Changelog: v0.5.2...v0.5.3
v0.5.2
What's Changed
- rename connection to session in tests by @marten-seemann in #63
- correctly handle OpenStreamSync returning after the session was closed by @marten-seemann in #67
Full Changelog: v0.5.1...v0.5.2
v0.5.1
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
- only close a session once by @marten-seemann in #62
Full Changelog: v0.5.0...v0.5.1
v0.5.0
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
- use quicvarint.Append instead of quicvarint.Write by @marten-seemann in #56
- update quic-go to v0.32.0 by @marten-seemann in #58
- change module name to github.com/quic-go/webtransport-go by @marten-seemann in #59
Full Changelog: v0.4.3...v0.5.0
v0.4.2
What's Changed
- use a buffered channel in the acceptQueue by @marten-seemann in #53
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- session: Release mutex on error by @MarcoPolo in #51
New Contributors
- @MarcoPolo made their first contribution in #51
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- add a Server.ServeQUICConn method by @marten-seemann in #47
Full Changelog: v0.3.0...v0.4.0