github.com/apernet/quic-go@v0.43.1-0.20240515053213-5e9e635fd9f0/Changelog.md (about)

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