httpcore2
A minimal low-level HTTP client.
Decision gist · record as of 2026-08-14
Yes, if you are building another HTTP client library or a specialized service that needs low-level HTTP handling with connection pooling and proxy support. No, if you are writing a typical application—use a higher-level client library like httpx2 instead. The package is actively maintained, has no known vulnerabilities, and carries a permissive license.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; optional extras (asyncio, trio, http2, socks) require additional dependencies.
- Low install friction with only two runtime dependencies (h11 and truststore).
- Actively maintained with a release 5 days old and recent fixes to HTTP/2 handling and connection pool behavior.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is a permissive license; you can use this package in commercial and proprietary projects with minimal restrictions.
last release 2026-08-09 (5 days) · last repo commit 2026-08-13 · 911 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 55,327,575 downloads/mo, #538 on PyPI
Alternatives
Verify before relying
pip install httpcore2
import httpcore2
http = httpcore2.ConnectionPool()
response = http.request("GET", "https://www.example.com/")
print(response.status)- Whether the package is suitable for production use in high-concurrency scenarios beyond the stated thread-safe/task-safe guarantees.
- Performance characteristics compared to other low-level HTTP clients in terms of throughput and latency.
What it is and what it does
HTTPCore 2 is a minimal, low-level HTTP client that does one thing: send HTTP requests. It intentionally omits high-level abstractions like automatic redirects, session management, authentication headers, JSON handling, and content decoding—leaving those concerns to libraries built on top of it. The package provides thread-safe and task-safe connection pooling, supports both HTTP/1.1 and HTTP/2, offers sync and async interfaces (with asyncio and trio backends), and handles HTTP(S) and SOCKS proxies.
It is designed as a reusable foundation for other HTTP client libraries rather than for direct end-user use. The clear separation between networking code and client logic makes it easier to understand and reason about in isolation. It depends only on h11 (for HTTP/1.1 framing) and truststore (for SSL verification using the OS trust store), with optional extras for HTTP/2, async backends, and SOCKS support.
Use it for
- Building a proxy service or gateway that needs low-level HTTP request handling without high-level abstractions.
- Creating a custom HTTP client library that layers domain-specific logic on top of a minimal, stable foundation.
- Writing async applications that need connection pooling and HTTP/2 support with explicit control over request handling.
- Implementing SOCKS proxy clients or applications requiring both HTTP(S) and SOCKS proxy support.
- Testing or debugging HTTP interactions where you need fine-grained control over requests and responses.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building another HTTP client library or a specialized service that needs low-level HTTP handling with connection pooling and proxy support.
No, if you are writing a typical application—use a higher-level client library like httpx2 instead. The package is actively maintained, has no known vulnerabilities, and carries a permissive license.
Install
httpcore2 on PyPI
Before you install
Low install friction with only two runtime dependencies (h11 and truststore). Actively maintained with a release 5 days old and recent fixes to HTTP/2 handling and connection pool behavior.
Requires Python 3.10 or later; optional extras (asyncio, trio, http2, socks) require additional dependencies.
License in practice
BSD-3-Clause is a permissive license; you can use this package in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install httpcore2
import httpcore2
http = httpcore2.ConnectionPool()
response = http.request("GET", "https://www.example.com/")
print(response.status)
Verify before relying
- Whether the package is suitable for production use in high-concurrency scenarios beyond the stated thread-safe/task-safe guarantees.
- Performance characteristics compared to other low-level HTTP clients in terms of throughput and latency.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesh11truststore |
| Maintenance | Actively maintained 5 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 55,327,575 / month, #538 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: AnyIOFramework :: AsyncIOFramework :: TrioIntended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Topic :: Internet :: WWW/HTTP |
Evidence: httpcore2-2.10.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “low-level http client”
- httpcore2A minimal, low-level HTTP client library providing thread-safe and…
- httpcoreA minimal low-level HTTP client library that sends HTTP requests with…
- asyncprawcoreasyncprawcore provides a low-level async HTTP communication layer for…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
HTTPX2 is a fully featured HTTP client library for Python that supports both HTTP/1.1 and HTTP/2, offers sync and async APIs, and includes an integrated command-line client.
See also httpcore · httpx-socks · connection_pool · python-socks · socksio · aiohttp_socks · asysocks · httpx-aiohttp