Back to Explore

pydantic/httpx2

GitHub
10 updates · last 90 days1 watchersOpen source

Last release:

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

AI-generated from public sources. May be inaccurate. Report

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.

    Features
  • v2.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.

    BreakingFeatures
  • v2.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.

    Features
  • v2.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.

    Features
  • v2.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.

    Features
  • v2.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.

    BreakingFeatures
  • v2.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