pyreqwest
Powerful and fast Rust based HTTP client
What it is and what it does
pyreqwest is a Rust-based HTTP client library for Python that wraps the widely-used Rust reqwest crate. It provides both synchronous and asynchronous APIs for making HTTP requests, with no Python or C-extension dependencies—the entire implementation is compiled Rust. The library targets developers who prioritize throughput and latency in high-concurrency scenarios, offering connection pooling, HTTP/1.1 and HTTP/2 support, automatic decompression, cookie management, proxy support, and built-in mocking utilities for testing.
The package requires Python 3.11 or later and is distributed as pre-compiled wheels across multiple platforms (macOS, Linux, Windows) and architectures. It includes type hints throughout, supports middleware customization and JSON serializer overrides, and can integrate with ASGI apps for testing. The trade-off is that it is not a pure Python solution—debugging HTTP internals requires understanding the Rust layer, and it does not support older Python versions or alternative implementations like PyPy or GraalPy.
Use it for:
- Building high-throughput microservices or API clients where request latency and concurrency matter.
- Replacing slower pure-Python HTTP libraries in existing projects when performance becomes a bottleneck.
- Writing integration tests with built-in mocking support or ASGI app connections.
- Handling complex HTTP scenarios: streaming bodies, multipart forms, proxy chains, or automatic charset detection.
- Projects requiring both sync and async HTTP clients in a single, type-safe library.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Rust-based HTTP client for Python with both synchronous and asynchronous APIs, offering high-performance request handling with connection pooling, streaming, and standard HTTP features like HTTPS, redirects, and authentication.
Yes, if you need high-performance HTTP requests and can commit to Python 3.11+. The package is actively maintained, has no security vulnerabilities, zero runtime dependencies, and offers a mature API. Verify the license before use in restricted contexts. Not suitable if you require pure Python debugging, older Python versions, or alternative implementations.
Install
pyreqwest on PyPI
pip
pip install pyreqwestuv
uv add pyreqwestpoetry
poetry add pyreqwestInstalling pyreqwest
Before you install
Medium install friction due to compiled wheels; requires Python 3.11 or later. Actively maintained with a recent release (2 days old) and 391 repository stars. No runtime dependencies to manage.
License in practice
License status is unclear—no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before use in commercial or restricted contexts.
Quickstart
# pip install pyreqwest
from pyreqwest.client import ClientBuilder
async def example():
async with ClientBuilder().build() as client:
response = await client.get("https://example.com").build().send()
print(await response.json())
Requires Python 3.11 or later; no support for older versions or alternative Python implementations.
Verify before relying
- Actual license identifier and terms—metadata shows 'unclear' treatment with no SPDX or raw license field populated.
- Stability guarantees and API compatibility commitments—package is marked 'Beta' in development status.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 190,532/month — #9,907 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyreqwest-0.12.4-cp311-cp311-macosx_10_12_x86_64.whl; pyreqwest-0.12.4-cp311-cp311-macosx_11_0_arm64.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyreqwest-0.12.4-cp311-cp311-manylinux_2_28_ppc64le.whl; pyreqwest-0.12.4-cp311-cp311-musllinux_1_1_aarch64.whl; pyreqwest-0.12.4-cp311-cp311-musllinux_1_1_armv7l.whl; pyreqwest-0.12.4-cp311-cp311-musllinux_1_1_x86_64.whl; pyreqwest-0.12.4-cp311-cp311-win_amd64.whl; pyreqwest-0.12.4-cp311-cp311-win_arm64.whl; pyreqwest-0.12.4-cp312-cp312-macosx_10_12_x86_64.whl; pyreqwest-0.12.4-cp312-cp312-macosx_11_0_arm64.whl; pyreqwest-0.12.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pyreqwest-0.12.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pyreqwest-0.12.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl; pyreqwest-0.12.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl; pyreqwest-0.12.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
pyqwestA Python HTTP client wrapping the Rust reqwest…
permissive · top 5,000 on PyPI
wreqAn HTTP client library for Python with…
permissive · top 15,000 on PyPI
baseten-performance-clientA high-performance Python HTTP client for…
unclear · top 15,000 on PyPI
connect-pythonProvides Python client and server libraries for…
permissive · top 5,000 on PyPI
httprhttpr is a fast HTTP client for Python built on…
permissive · top 5,000 on PyPI
apiclientA lightweight framework for building HTTP API…
permissive · top 15,000 on PyPI
geventhttpclientA concurrent HTTP client for gevent that…
permissive · top 5,000 on PyPI
snowpipe-streamingStreams data in real-time into Snowflake tables…
permissive · top 15,000 on PyPI