Releases: quic-go/quic-go
Releases · quic-go/quic-go
v0.28.0
Most Notable Changes
This release adds support for QUIC v2 and adds an API for WebTransport to the http3 package.
What's Changed
- remove unneeded network from custom dial function used in HTTP/3 by @marten-seemann in #3368
- extend the HTTP/3 API for WebTransport support by @marten-seemann in #3362
- add LocalAddr and RemoteAddr functions to http3.StreamCreator by @marten-seemann in #3384
- implement HTTP/3 unidirectional stream hijacking by @hareku in #3389
- Expose quic server closed err by @hareku in #3395
- protect against concurrent use of Stream.Read by @marten-seemann in #3380
- protect against concurrent use of Stream.Write by @marten-seemann in #3381
- reduce flakiness of deadline integration tests by @marten-seemann in #3383
- fix deadlock on concurrent http3.Server.Serve and Close calls by @marten-seemann in #3387
- update docs to reflect that we support RFC 9221 (Unreliable Datagrams) by @marten-seemann in #3382
- fix parsing of request path for Extended CONNECT requests by @marten-seemann in #3388
- remove warning comments of stable implementation by @hareku in #3399
- Clone TLS conf in newClient by @betamos in #3400
- don't set receive buffer if it is already large enough by @dchaofei in #3407
- remove error return value from ComposeVersionNegotiation by @dchaofei in #3410
- do not embed http.Server in http3.Server by @tie in #3397
- don't close the request stream when http3.DataStreamer was used by @marten-seemann in #3413
- introduce a http3.RoundTripOpt to prevent closing of request stream by @marten-seemann in #3411
- don't send path MTU probe packets on a timer by @marten-seemann in #3423
- don't ignore errors that occur when the TLS ClientHello is generated by @marten-seemann in #3424
- make it possible to parse a varint at the end of a reader by @marten-seemann in #3428
- add test for bidirectional stream hijacker by @marten-seemann in #3434
- pass frame / stream type parsing errors to the hijacker callbacks by @marten-seemann in #3429
- Change "HTTP/3" to "HTTP/3.0". by @aaronriekenberg in #3439
- always reset header buffer, even when QPACK encoding fails by @marten-seemann in #3436
- update qtls to include the recent session ticket changes to crypto/tls by @marten-seemann in #3443
- remove the http3.DataStreamer by @marten-seemann in #3435
- allow HTTP clients and servers to take over the request stream by @marten-seemann in #3437
- implement QUIC v2 by @marten-seemann in #3432
- make the keep alive interval configurable by @nmldiegues in #3444
- fix flaky HTTP/3 request body test by @marten-seemann in #3447
- only set DF for sockets that can handle it by @nmldiegues in #3448
- dedupe Alt-Svc header values by @mattrobenolt in #3461
- update for Go 1.19beta1 by @marten-seemann in #3460
New Contributors
- @betamos made their first contribution in #3400
- @dchaofei made their first contribution in #3407
- @tie made their first contribution in #3397
- @nmldiegues made their first contribution in #3444
- @mattrobenolt made their first contribution in #3461
Full Changelog: v0.27.0...v0.28.0
v0.27.2
v0.27.1
v0.27.0
Most Notable Changes
This release contains a big breaking change: We renamed the quic.Session
to quic.Connection
. The term "session" was used in gQUIC, but is not used in the QUIC RFC any more. Instead, it's called a "connection" there. We are aware that this API change will cause breakage for downstream users, but it had to be done sooner or later.
What's Changed
- improve code coverage of random number generator test by @marten-seemann in #3358
- remove parser logic for HTTP/3 DUPLICATE_PUSH frame by @marten-seemann in #3356
- remove the SkipSchemeCheck RoundTripOpt by @marten-seemann in #3353
- add support for the Extended CONNECT method by @marten-seemann in #3357
- update HTTP/3 Datagram to draft-ietf-masque-h3-datagram-07 by @marten-seemann in #3355
- respect the request context when dialing by @marten-seemann in #3359
- rename the Session to Connection by @marten-seemann in #3361
- remove nextdns from list of projects using quic-go by @ignoramous in #3363
- improve the error thrown when building with an unsupported Go version by @marten-seemann in #3364
- add support for serializing Extended CONNECT requests by @marten-seemann in #3360
- stop using the deprecated net.Error.Temporary, update golangci-lint to v1.45.2 by @marten-seemann in #3367
New Contributors
- @ignoramous made their first contribution in #3363
Full Changelog: v0.26.0...v0.27.0
v0.26.0
Most Notable Changes
This release
- fixes a problem with Path MTU Discovery (#3327)
- adds an environment variable to turn off the receive buffer warning (
QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING
) - adds
http3.Server.ServeListener
to allow switchinghttp3.Server
s on top of the samequic.Listener
- adds support for Go 1.18
What's Changed
- sendQueue: ignore "datagram too large" error by @zllovesuki in #3328
- add env to disable the receive buffer warning by @arashpayan in #3339
- move set DF implementation to separate files & avoid the need for OOBCapablePacketConn by @tobyxdd in #3334
- don't print a receive buffer warning for closed connections by @marten-seemann in #3346
- update for Go 1.18 by @marten-seemann in #3345
- Implement http3.Server.ServeListener by @renbou in #3349
- avoid recursion when skipping unknown HTTP/3 frames by @marten-seemann in #3354
- Advertise multiple listeners via Alt-Svc and improve perf of SetQuicHeaders by @renbou in #3352
New Contributors
- @zllovesuki made their first contribution in #3328
- @arashpayan made their first contribution in #3339
- @renbou made their first contribution in #3349
Full Changelog: v0.25.0...v0.26.0
v0.25.0
What's Changed
- add support for Go 1.18 by @marten-seemann in #3298
- add a AllowConnectionWindowIncrease config option by @marten-seemann in #3317
New Contributors
Full Changelog: v0.24.0...v0.25.0
v0.24.0
Merge pull request #3290 from lucas-clemente/fix-receive-stream-mutex don't unlock the receive stream mutex for copying from STREAM frames
v0.23.0
v0.22.1
v0.22.0
Features
- use
ReadBatch
to read multiple UDP packets from the socket with a single syscall - add a config option (
Config.DisableVersionNegotiationPackets
) to disable sending of Version Negotiation packets
Breaking Changes
- drop support for QUIC draft versions 32 and 34
- remove the
RetireBugBackwardsCompatibilityMode
, which was intended to mitigate a bug when retiring connection IDs in quic-go in v0.17.2 and ealier
Other Notable Changes
- fix busy-looping caused by a certain loss pattern (#3231)
- fix behavior of exported errors when using
errors.Is
(#3215) - update qtls to include the fix for the recently discovered crypto/tls panic