1# Changelog 2 3## v0.20.0 (unreleased) 4 5- Remove the `quic.Config.HandshakeTimeout`. Introduce a `quic.Config.HandshakeIdleTimeout`. 6 7## v0.17.1 (2020-06-20) 8 9- Supports QUIC WG draft-29. 10- Improve bundling of ACK frames (#2543). 11 12## v0.16.0 (2020-05-31) 13 14- Supports QUIC WG draft-28. 15 16## v0.15.0 (2020-03-01) 17 18- Supports QUIC WG draft-27. 19- Add support for 0-RTT. 20- Remove `Session.Close()`. Applications need to pass an application error code to the transport using `Session.CloseWithError()`. 21- Make the TLS Cipher Suites configurable (via `tls.Config.CipherSuites`). 22 23## v0.14.0 (2019-12-04) 24 25- Supports QUIC WG draft-24. 26 27## v0.13.0 (2019-11-05) 28 29- Supports QUIC WG draft-23. 30- Add an `EarlyListener` that allows sending of 0.5-RTT data. 31- Add a `TokenStore` to store address validation tokens. 32- Issue and use new connection IDs during a connection. 33 34## v0.12.0 (2019-08-05) 35 36- Implement HTTP/3. 37- Rename `quic.Cookie` to `quic.Token` and `quic.Config.AcceptCookie` to `quic.Config.AcceptToken`. 38- Distinguish between Retry tokens and tokens sent in NEW_TOKEN frames. 39- Enforce application protocol negotiation (via `tls.Config.NextProtos`). 40- Use a varint for error codes. 41- Add support for [quic-trace](https://github.com/google/quic-trace). 42- Add a context to `Listener.Accept`, `Session.Accept{Uni}Stream` and `Session.Open{Uni}StreamSync`. 43- Implement TLS key updates. 44 45## v0.11.0 (2019-04-05) 46 47- Drop support for gQUIC. For qQUIC support, please switch to the *gquic* branch. 48- Implement QUIC WG draft-19. 49- Use [qtls](https://github.com/marten-seemann/qtls) for TLS 1.3. 50- Return a `tls.ConnectionState` from `quic.Session.ConnectionState()`. 51- Remove the error return values from `quic.Stream.CancelRead()` and `quic.Stream.CancelWrite()` 52 53## v0.10.0 (2018-08-28) 54 55- Add support for QUIC 44, drop support for QUIC 42. 56 57## v0.9.0 (2018-08-15) 58 59- Add a `quic.Config` option for the length of the connection ID (for IETF QUIC). 60- Split Session.Close into one method for regular closing and one for closing with an error. 61 62## v0.8.0 (2018-06-26) 63 64- Add support for unidirectional streams (for IETF QUIC). 65- Add a `quic.Config` option for the maximum number of incoming streams. 66- Add support for QUIC 42 and 43. 67- Add dial functions that use a context. 68- Multiplex clients on a net.PacketConn, when using Dial(conn). 69 70## v0.7.0 (2018-02-03) 71 72- The lower boundary for packets included in ACKs is now derived, and the value sent in STOP_WAITING frames is ignored. 73- Remove `DialNonFWSecure` and `DialAddrNonFWSecure`. 74- Expose the `ConnectionState` in the `Session` (experimental API). 75- Implement packet pacing. 76 77## v0.6.0 (2017-12-12) 78 79- Add support for QUIC 39, drop support for QUIC 35 - 37 80- Added `quic.Config` options for maximal flow control windows 81- Add a `quic.Config` option for QUIC versions 82- Add a `quic.Config` option to request omission of the connection ID from a server 83- Add a `quic.Config` option to configure the source address validation 84- Add a `quic.Config` option to configure the handshake timeout 85- Add a `quic.Config` option to configure the idle timeout 86- Add a `quic.Config` option to configure keep-alive 87- Rename the STK to Cookie 88- Implement `net.Conn`-style deadlines for streams 89- Remove the `tls.Config` from the `quic.Config`. The `tls.Config` must now be passed to the `Dial` and `Listen` functions as a separate parameter. See the [Godoc](https://godoc.org/github.com/lucas-clemente/quic-go) for details. 90- Changed the log level environment variable to only accept strings ("DEBUG", "INFO", "ERROR"), see [the wiki](https://github.com/lucas-clemente/quic-go/wiki/Logging) for more details. 91- Rename the `h2quic.QuicRoundTripper` to `h2quic.RoundTripper` 92- Changed `h2quic.Server.Serve()` to accept a `net.PacketConn` 93- Drop support for Go 1.7 and 1.8. 94- Various bugfixes 95