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: the upstream was pushed on 2026-10-01, and the source has multiple recent tagged updates (v2.13.1 on 2026-09-23, v2.13.0 on 2026-09-14, v2.12.0 on 2026-08-18).
- Update cadence appears steady, with about 1 to 2 week gaps between the last two updates, and a longer but still recent gap of about 5 weeks from v2.12.0 to v2.13.0.
AI summary generated
Recent updates
v2.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