Skip to content

Releases: jawah/qh3

Version 1.0.5

04 May 05:57
b99c785
Compare
Choose a tag to compare

1.0.5 (2024-05-04)

Fixed

  • Qpack encoder / decoder failure due to unfed stream data.

Version 1.0.4

24 Apr 04:41
4492d16
Compare
Choose a tag to compare

1.0.4 (2024-04-23)

Changed

  • Buffer management has been migrated over to Rust in order to improve the overall performance.

Misc

  • MacOS universal2 wheels are available

Version 1.0.3

20 Apr 04:42
befa8b3
Compare
Choose a tag to compare

1.0.3 (2024-04-20)

Fixed

  • setting assert_hostname to False triggered an error when the peer certificate contained at least one IP in subject alt names.

Version 1.0.2

20 Apr 01:54
736e457
Compare
Choose a tag to compare

1.0.2 (2024-04-20)

Fixed

  • qpack encoder/decoder blocking state in a rare condition.
  • missing (a default) NullHandler for quic and http3 loggers causing a StreamHandler to write into stderr.
  • setting assert_hostname to False did not disable hostname verification / match with given certificate.

Changed

  • Updated rustls to v0.23.5

Version 1.0.1

19 Apr 09:14
e7ff163
Compare
Choose a tag to compare

1.0.1 (2024-04-19)

Fixed

  • PyO3 unsendable classes constraint has been relaxed. qh3 is not thread-safe and you should take appropriate measures in a concurrent environment.

Added

  • Exposed CipherSuite and SessionTicket classes in the top-level import.

Misc

  • Exposed a x509 helper to make for cryptography dependency removal, solely for Niquests usage.

Version 1.0.0

18 Apr 20:11
94b66c2
Compare
Choose a tag to compare

1.0.0 (2024-04-18)

Removed

  • Breaking: Dependency on cryptography along with the indirect dependencies on cffi and pycparser.
  • Breaking: H0Connection class that was previously deprecated. Use either urllib3-future or niquests instead.
  • Breaking: Draft support for QUIC and H3 protocols.
  • Breaking: RSA_PKCS1_SHA1 signature algorithm due to its inherent risk dealing with the unsafe SHA1.
  • Breaking: ED448/X448 signature and private key are no longer supported due to its absence in aws-lc-rs.
  • Breaking: You may no longer pass certificates (along with private keys) as object that comes from cryptography. You have to encode them into PEM format.

Changed

  • ls-qpack binding integration upgraded to v2.5.4 and migrated to Rust.
  • cryptographic bindings are rewritten in Rust using the PyO3 SDK, the underlying crypto library is aws-lc-rs 1.6.4
  • certificate chain control with dns name matching is delegated to rustls instead of previously half-vendored (py)OpenSSL (X509Store).

Added

  • Exposed a public API for qh3 (top-level import).
  • SECP384R1 key exchange algorithm as a supported group by default to make for the X448 removal.
  • SECP521R1 key exchange algorithm is also supported but not enabled by default per standards (NSA Suite B) recommendations.

Misc

  • Noticeable performance improvement and memory safety thanks to the Rust migration. We tried to leverage pure Rust binding whenever we could do it safely.
  • Example scripts are adapted for this major version.
  • Using maturin as the build backend.
  • Published new compatible architectures for pre-built wheels.
  • Initial MSRV 1.75+

If you rely on one aspect of enumerated breaking changes, please pin qh3 to
exclude this major (eg. >=0.15,<1) and inform us on how this release affected your program(s).
We will listen.

The semantic versioning will be respected excepted for the hazardous materials.

Version 0.15.1

21 Mar 06:42
Compare
Choose a tag to compare

0.15.1 (2023-03-21)

Fixed

  • Improved stream write scheduling. (upstream patch aiortc#475)

Misc

  • CI now prepare a complete sdist with required vendors
  • aarch64 linux is now served

Version 0.15.0

01 Feb 18:26
481a16b
Compare
Choose a tag to compare

0.15.0 (2023-02-01)

Changed

  • Highly simplified _crypto module based on upstream work aiortc#457
  • Bump upper bound cryptography version to 42.x

Fixed

  • Mitigate deprecation originating from cryptography about datetime naïve timezone.

Version 0.14.0

11 Nov 06:55
Compare
Choose a tag to compare

0.14.0 (2023-11-11)

Changed

  • Converted our Buffer implementation to native Python instead of C as performance is better thanks to CPython internal optimizations

Fixed

  • Addressed performance concerns when attributing new stream ids
  • The retry token was based on a weak key

Added

  • StopSendingReceived event
  • Property open_outbound_streams in QuicConnection
  • Property max_concurrent_bidi_streams in QuicConnection
  • Property max_concurrent_uni_streams in QuicConnection
  • Method get_cipher in QuicConnection
  • Method get_peercert in QuicConnection
  • Method get_issuercerts in QuicConnection

Version 0.13.0

27 Oct 18:47
1baa4df
Compare
Choose a tag to compare

Added

  • Support for in-memory certificates (client/intermediary) via Configuration.load_cert_chain(..)

Removed

  • (internal) Unused code in private _vendor.OpenSSL