Back to Explore

encode/httpcore

GitHub
1 watchersOpen source

Last release: 4/24/2025

HTTP Core is a minimal low-level HTTP client for Python, focused on sending HTTP requests. It avoids higher-level features like redirects, authentication header building, caching, URL parsing, and content decoding, and instead provides thread-safe or task-safe connection pooling, HTTP(S) and SOCKS proxy support, and both sync and async interfaces (including HTTP/1.1 and HTTP/2).

Project status

  • The project (encode/httpcore) appears actively maintained, with a recent upstream push on 2026-01-08 and continuing version updates through 1.0.9 in 2025. It also explicitly follows SEMVER behavior (since 1.0.0), which supports safer update expectations.
  • The update cadence is irregular but fairly steady during 2024-2025, with multiple minor releases (1.0.4 to 1.0.7 across Feb to Nov 2024) and two close updates in April 2025 (1.0.8 on 2025-04-11, 1.0.9 on 2025-04-24). After 1.0.9, no further version updates are shown in the provided history.

AI summary generated 2 weeks ago

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

Recent updates

  • 1.0.9

    4/24/2025

    Release 1.0.9 updates the project to address a known security advisory (GHSA-vqfr-h8mv-ghfj) by bumping the `h11` dependency. The code changes in this release are minimal, consisting mainly of version metadata and the dependency constraint update.

    Security
  • 1.0.8

    4/11/2025

    Version 1.0.8 is described as a Python 3.14 import fix (AttributeError) and otherwise appears to be a small internal patch release. The code diff also includes several internal HTTP/2 handling changes and toolchain dependency bumps that are not mentioned in the release notes.

  • 1.0.7

    11/15/2024

    Version 1.0.7 primarily adds support for configuring proxies via a new `proxy` argument on `ConnectionPool()`. The code changes also introduce a new `httpcore.Proxy` API and update connection pool routing logic based on the proxy scheme.

    Features
  • 1.0.6

    10/1/2024

    Version 1.0.6 relaxes the upper bound on the optional trio extra, and adds improved exception handling around trio and TLS errors. It also updates some internal behavior related to how connection pool requests are assigned, plus several repository/development dependency changes.

  • 1.0.5

    3/27/2024

    Version 1.0.5 primarily updates httpcore to better handle `anyio.EndOfStream` and relaxes the allowed Trio version range to include `0.25.*`. The release notes only mention these two items, but the diff also includes contributor tooling and dependency updates.

  • 1.0.4

    2/21/2024

    Version 1.0.4 introduces support for a new `target` request extension and fixes handling of CONNECT and Upgrade requests when extra data is already buffered by the underlying HTTP/1.1 state machine. The code changes focus on correctly exposing that buffered trailing data through the `network_stream` extension.

    Features
  • 1.0.3

    2/14/2024

    httpcore 1.0.3 primarily fixes three networking edge cases: async cancellation handling, trace behavior when used through a SOCKS proxy, and SSL context selection for wss connections. The code diff shows these fixes alongside a much larger internal refactor of connection pooling and locking.

  • 1.0.2

    11/10/2023

    Release 1.0.2 is a small patch release focused on correcting timeout handling in the synchronization layer. The documented fix targets how `Event.wait` treats `timeout=float('inf')` to avoid unintended timeout behavior.

  • 1.0.1

    11/3/2023

    Version 1.0.1 updates httpcore with a corrected connection pool timeout calculation, improved runtime errors when required async extras are missing, and expanded TLS support for synchronous TLS-in-TLS streams. The code changes touch both sync and async connection pool logic, plus the async synchronization dependency detection.

    Features
  • 1.0.0

    10/6/2023

    Version 1.0.0 makes async support optional by moving async-related dependencies into extras, and adds Python 3.12 support. Documentation was updated to explain installing async and HTTP/2/SOCKS capabilities via optional extras, and the project now explicitly follows SEMVER.

    Features