HTTPX2 is a Python HTTP client library with a requests-compatible API, it supports both HTTP/1.1 and HTTP/2, and provides synchronous and async interfaces. It also includes an integrated command-line client (as an optional extra) and supports making requests to WSGI or ASGI applications, along with features like strict timeouts and streaming downloads.
Project status
- Actively maintained: GitHub shows a very recent upstream push (2026-10-21), and the project has multiple recent updates in late October 2026 (v2.16.0 and v2.15.x), indicating ongoing active development.
- Update cadence: Several updates clustered within days (Oct 18 to Oct 21 includes v2.14.0 to v2.16.0). After that, the cadence appears to slow, with the next listed updates in September and August 2026 (mid to late month).
AI summary generated
Recent updates
v2.16.0
v2.16.0 focuses on significantly improving cookie handling performance by reducing per-request work when building the Cookie header and by deferring expensive cookie expiry sweeps. The implementation introduces a specialized CookieJar subclass and updates the client to reuse the same cookie jar across requests and redirects. The release notes cover the intended behavior changes (domain matching, ordering, and custom cookie policy application).
v2.15.1
v2.15.1 fixes high CPU usage on Linux for long-lived clients by configuring the default SSL context once instead of during every handshake. The implementation changes how the SSL context is created on Linux and how trust environment variables are handled.
v2.15.0
This release bumps the minimum supported Python version for both httpx2 and httpcore2 from Python 3.10 to Python 3.11. It also updates CI and some tests/docs to align with the new supported versions. The release notes state there are no other changes, but the diff shows additional non-noted adjustments, most notably a large uv.lock update.
Breakingv2.14.0
v2.14.0 adds CIDR-aware handling for NO_PROXY and mounts, including bracketed IPv6 support, and tightens validation for invalid CIDR mount patterns. It also improves robustness in HTTP/2 stream admission when SETTINGS change mid-flight and makes WebSocket shutdown and post-shutdown reads more reliable across runtimes.
BreakingFeaturesv2.13.1
v2.13.1 focuses on correctness fixes around HTTP upload sizing, proxy TLS negotiation, and clean WebSocket keepalive shutdown. The release notes document changes to Content-Length calculation for file-backed content, correct handling of the sni_hostname extension inside HTTP proxy tunnels, and improved WebSocket keepalive thread behavior during connection shutdown.
v2.13.0
v2.13.0 updates TLS verification controls by fixing the CLI behavior of --no-verify and adding an explicit --verify counterpart. It also improves stream cleanup to avoid nested async generator finalization errors, and bumps the required brotlicffi and Trio versions for the respective extras.
Featuresv2.12.0
v2.12.0 focuses on bounded, incremental decompression to reduce peak memory usage when decoding compressed HTTP responses. It also unifies Zstandard decoding on Python 3.13 and earlier by switching from the `zstandard` package to `backports.zstd`.
v2.11.0
v2.11.0 adds a new public `Origin` value object and `URL.origin` property for normalized, hashable origin comparisons. It also tightens HTTP request handling (Transfer-Encoding vs Content-Length, multipart header validation), restores deprecated status code aliases, and updates httpcore2 to cache sniffio availability.
BreakingFeaturesv2.10.0
Release v2.10.0 introduces performance and memory improvements, including faster SSE parsing and more efficient large HTTP/2 request handling. It also adds WebAssembly/Emscripten support via a fetch-based transport, and includes smaller API typing and robustness fixes across httpx2 and httpcore2.
Featuresv2.9.1
Release v2.9.1 updates httpx2 so that calling `httpx2.alias_httpx()` aliases both `httpx` to `httpx2` and `httpcore` to `httpcore2` across the whole process. The change is implemented via new internal aliasing logic that installs import hooks and pre-populates `sys.modules` entries for the aliased modules.
Featuresv2.9.0
v2.9.0 primarily introduces a new helper, `alias_httpx()`, to let applications make `import httpx` resolve to `httpx2` process-wide. The diff shows this is implemented via a custom `sys.meta_path` finder and loader, plus accompanying documentation and tests. No code deletions or dependency changes are present in this release.
Featuresv2.8.0
v2.8.0 focuses on improving connection pool assignment behavior to reduce multi-assignment churn. The core change is in how the pool handles “reserved” idle connections and how it decides whether an idle connection can be reused for additional queued requests.
v2.7.0
v2.7.0 updates the vendored WebSocket implementation to match upstream httpx-ws v0.9.0. The release notes only mention the vendored update, but the code diff shows several behavioral and API-level changes around timeouts, ASGI stream lifecycle, and error handling.
BreakingFeaturesv2.6.0
v2.6.0 introduces WebSocket support (context manager APIs on both Client and top-level httpx2) and adds support for the HTTP QUERY method (RFC 10008). It also includes internal connection lifecycle fixes around cancellation and a concurrency safety improvement by reading `_expire_at` only once in `has_expired()`.
Features