Changelog

1.3.0

  • Ensure PATH_CHALLENGE frames are sent before other frame types.

  • Reclaim memory when HTTP/3 streams end.

  • Limit the number of remote PATH_CHALLENGE stored per path.

  • Avoid assertion error when receiving multiple STOP_SENDING frames.

  • Improve type annotations.

  • Make it possible to use LibreSSL instead of OpenSSL.

  • Add support Python 3.13 and 3.14, drop support for Python 3.8 and 3.9.

  • Build binary wheels for musllinux.

  • Build binary wheels against OpenSSL 3.5.4.

  • Add command-line argument to the http3_client example to request a key update during interoperability tests.

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