# Changelog

## 1.2.0

- Add support for compatible version handling as defined in RFC 9368.

- Add support for QUIC Version 2, as defined in RFC 9369.

- Drop support for draft QUIC versions which were obsoleted by RFC 9000.

- Improve datagram padding to allow better packet coalescing and reduce the number of roundtrips during connection establishement.

- Fix server anti-amplification checks during address validation to take into account invalid packets, such as datagram-level padding.

- Allow asyncio clients to make efficient use of 0-RTT by passing wait_connected=False to `connect()`.

- Add command-line arguments to the http3_client example for client certificates and negotiating QUIC Version 2.

## 1.1.0

- Improve path challenge handling and compliance with RFC 9000.

- Limit the amount of buffered CRYPTO data to avoid memory exhaustion.

- Enable SHA-384 based signature algorithms and SECP384R1 key exchange.

- Build binary wheels against OpenSSL 3.3.0.

## 1.0.0

- Ensure no data is sent after a stream reset.

- Make `H3Connection`’s `send_datagram()` and `send_push_promise()` methods raise an `InvalidStreamTypeError` exception if an invalid stream ID is specified.

- Improve the documentation for `QuicConnectionProtocol`’s `transmit()` method.

- Fix `utcnow()` deprecation warning on Python 3.12 by using cryptography 42.0 and timezone-aware `datetime` instances when validating TLS certificates.

- Build binary wheels against OpenSSL 3.2.0.

- Ignore any non-ASCII ALPN values received.

- Perform more extensive HTTP/3 header validation in `H3Connection`.

- Fix exceptions when draining stream writers in the asyncio API.

- Set the `QuicConnection` idle timer according to RFC 9000 section 10.1.

- Implement fairer stream scheduling in `QuicConnection` to avoid head-of-line blocking.

- Only load certifi root certificates if none was specified in the `QuicConfiguration`.

- Improve padding of UDP datagrams containing Initial packets to comply with RFC 9000 section 14.1.

- Limit the number of pending connection IDs marked for retirement to prevent a possible DoS attack.