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¶
1.0.0¶
Ensure no data is sent after a stream reset.
Make
H3Connection
’ssend_datagram()
andsend_push_promise()
methods raise anInvalidStreamTypeError
exception if an invalid stream ID is specified.Improve the documentation for
QuicConnectionProtocol
’stransmit()
method.Fix
utcnow()
deprecation warning on Python 3.12 by using cryptography 42.0 and timezone-awaredatetime
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.