Skip to main content

A 1:1 Rust port of httpx — same API, faster execution.

Project description

httpxr logo

httpxr

CI PyPI version Python versions Docs

A Rust-powered HTTP client built on the httpx API — same interface, faster execution, and a growing set of high-performance extensions for data ingestion.

📖 Documentation · 📦 PyPI · 🐙 GitHub · 🤖 llm.txt

[!NOTE] 🤖 AI-Generated — Every line of Rust, Python, and configuration in this project was written by an AI coding agent powered by Claude Opus 4.6. The iterative process of getting all 1300+ tests to pass involved human oversight — reviewing agent output, steering direction, and deciding next steps — so this was not a press-button-and-done affair. Read the full story →


What is httpxr?

httpxr started as a faithful port of httpx — swap import httpx for import httpxr and everything just works, but faster thanks to native Rust networking, TLS, and compression.

It has since grown beyond a 1:1 port. The bundled httpxr.extensions module adds high-performance helpers designed for big-data ingestion pipelines (Databricks, PySpark, NDJSON streams) that go well beyond what plain httpx provides:

Feature Purpose
paginate_to_records() Lazy record iterator over paginated APIs — O(1) memory
iter_json_bytes() Stream NDJSON/SSE as raw bytes — zero UTF-8 decode overhead
gather_raw_bytes() Concurrent batch requests → bytes/parsed, powered by Rust concurrency
OAuth2Auth Client-credentials auth with automatic token refresh

The networking layer is reimplemented in Rust:

Layer Technology
Python bindings PyO3
Async HTTP reqwest + tokio
Sync HTTP reqwest + tokio
TLS rustls + native-tls
Compression gzip, brotli, zstd, deflate (native Rust)

Zero Python Dependencies

Unlike httpx (which depends on httpcore, certifi, anyio, idna, and optional packages for compression), httpxr has zero runtime Python dependencies. Everything — HTTP, TLS, compression, SOCKS proxy, IDNA encoding — is handled natively in Rust.


Benchmarks

All benchmarks run against 10 HTTP libraries on a local ASGI server (uvicorn), 100 rounds each. Scenarios: Single GET, 50 Sequential GETs, 50 Concurrent GETs.

HTTP Library Benchmark

📊 Interactive version → with full hover/zoom

Summary (median, ms — lower is better)

Scenario httpxr httpr pyreqwest ry aiohttp curl_cffi urllib3 rnet httpx niquests
Single GET 0.23 0.15 0.17 0.19 0.22 0.23 0.31 0.33 0.34 0.43
50 Sequential GETs 7.05 6.73 6.10 9.34 9.50 12.35 13.34 15.80 19.13 19.28
50 Concurrent GETs 4.83 7.40 6.53 7.39 6.63 11.39 14.19 9.50 70.51 20.62

Key takeaways:

  • httpxr is the fastest full-featured httpx-compatible client — on par with raw Rust libraries
  • #1 under concurrency — faster than all other libraries including httpr, pyreqwest, and ry
  • ~2.3× faster than httpx for sequential workloads
  • ~12× faster than httpx under concurrency (GIL-free Rust)
  • Competitive with bare-metal libraries (pyreqwest, ry) while offering the full httpx API

Why httpxr is slightly slower on Single GET

Libraries like httpr and pyreqwest achieve lower single-request latency (~0.17-0.19ms) because they return minimal response objects — essentially just status + bytes + a headers dict. They are not full httpx drop-in replacements.

httpxr returns full httpx-compatible Response objects with:

  • Parsed URL with scheme/host/path/query components
  • Headers (multidict with case-insensitive lookup)
  • Request back-reference, redirect history, elapsed timing
  • Event hooks, auth flows, cookie persistence, transport mounts

This ~0.08ms of extra per-request overhead is the cost of 100% API compatibility with httpx. Under real-world workloads (sequential/concurrent), httpxr's Rust transport layer dominates and beats httpx in both scenarios.

# Reproduce benchmarks locally:
uv sync --group dev --group benchmark
uv run pytest benchmarks/test_bench_httpx.py --benchmark-json=benchmarks/pytest_benchmark_results.json
uv run python benchmarks/generate_plots.py

Quick Start

pip install httpxr

To also install the optional CLI:

pip install "httpxr[cli]"

Sync:

import httpxr

with httpxr.Client() as client:
    r = client.get("https://httpbin.org/get")
    print(r.status_code)
    print(r.json())

Async:

import httpxr, asyncio

async def main():
    async with httpxr.AsyncClient() as client:
        r = await client.get("https://httpbin.org/get")
        print(r.json())

asyncio.run(main())

API Compatibility

httpxr supports the full httpx API surface:

  • Client / AsyncClient — sync and async HTTP clients
  • Request / Response — full request/response models
  • URL, Headers, QueryParams, Cookies — all data types
  • Timeout, Limits, Proxy — configuration objects
  • MockTransport, ASGITransport, WSGITransport — test transports
  • Authentication flows, redirects, streaming, event hooks
  • HTTP/1.1 & HTTP/2, SOCKS proxy support
  • Server-Sent Events via httpxr.sse (port of httpx-sse)
  • CLI via httpxr command (requires pip install "httpxr[cli]")
  • Python 3.10, 3.11, 3.12, 3.13

Zero-Effort httpx Swap — httpxr.compat

Already using httpx everywhere? Add one line to your entrypoint and every import httpx — including inside third-party libraries — will transparently use httpxr instead:

import httpxr.compat   # add this once, e.g. in main.py / settings.py

import httpx           # ← now resolves to httpxr 🚀

This works by registering httpxr as sys.modules["httpx"] at import time. No code changes required — all your existing httpx calls keep working at Rust speed.

import os
# Feature-flag style: switch via env var
if os.environ.get("USE_HTTPXR"):
    import httpxr.compat  # noqa: F401

import httpx  # uses httpxr or httpx based on env var

Full compatibility shim docs →


httpxr Extensions

Beyond the standard httpx API, httpxr adds features that leverage the Rust runtime:

gather() — Concurrent Batch Requests

Dispatch multiple requests concurrently with a single call. Requests are built in Python, then sent in parallel via Rust's tokio runtime with zero GIL contention.

with httpxr.Client() as client:
    requests = [
        client.build_request("GET", f"https://api.example.com/items/{i}")
        for i in range(100)
    ]
    responses = client.gather(requests, max_concurrency=10)
Parameter Default Description
max_concurrency 10 Max simultaneous in-flight requests
return_exceptions False Return errors inline instead of raising

📖 gather() docs →

paginate() — Auto-Follow Pagination

Automatically follow pagination links across multiple API responses.

# Follow @odata.nextLink in JSON body (Microsoft Graph)
pages = client.paginate("GET", url, next_url="@odata.nextLink")

# Follow Link header (GitHub-style)
pages = client.paginate("GET", url, next_header="link")

# Custom extractor function
pages = client.paginate("GET", url, next_func=my_extractor)
Parameter Default Description
next_url JSON key containing the next page URL
next_header HTTP header to parse for rel="next" links
next_func Custom Callable[[Response], str | None]
max_pages 100 Stop after N pages

Both methods are available on Client (sync) and AsyncClient (async). See examples/gather.py and examples/paginate.py for full examples.

📖 paginate() docs →

gather_raw() — Batch Raw Requests

Like gather() but returns (status, headers, body) tuples — maximum throughput for high-volume workloads where you don't need full Response objects.

paginate_get() / paginate_post() — Convenience Wrappers

Shorthand for paginate("GET", ...) and paginate("POST", ...).

gather_paginate() — Concurrent Paginated Fetches

Fetch all pages from multiple paginated endpoints concurrently in one call.

📖 Full extensions docs →

download() — Direct File Download

with httpxr.Client() as client:
    client.download("https://example.com/data.csv", "/tmp/data.csv")

response.json_bytes() — Raw JSON Bytes

Returns the response body as bytes without the UTF-8 decode step — feed directly into orjson or msgspec.

response.iter_json() — NDJSON & SSE Streaming

Parse NDJSON or SSE responses as a stream of Python dicts. Handles data: prefixes and [DONE] sentinels automatically.

📖 Requests & Responses docs →

RetryConfig — Automatic Retries

with httpxr.Client(retry=httpxr.RetryConfig(max_retries=3, backoff_factor=0.5)) as client:
    r = client.get("https://api.example.com/flaky")

RateLimit — Request Throttling

with httpxr.Client(rate_limit=httpxr.RateLimit(requests_per_second=10.0)) as client:
    for i in range(1000):
        client.get(f"https://api.example.com/items/{i}")  # auto-throttled

📖 Resilience docs →

httpxr.sse — Server-Sent Events

from httpxr.sse import connect_sse

with httpxr.Client() as client:
    with connect_sse(client, "GET", "https://example.com/stream") as source:
        for event in source.iter_sse():
            print(event.event, event.data)

Port of httpx-sse — supports sync and async, EventSource, ServerSentEvent, and SSEError.

📖 SSE docs →

Raw API — Maximum-Speed Dispatch

For latency-critical code, get_raw(), post_raw(), put_raw(), patch_raw(), delete_raw(), and head_raw() bypass all httpx Request/Response construction and call reqwest directly.

with httpxr.Client() as client:
    status, headers, body = client.get_raw("https://api.example.com/data")
    # status:  int (e.g. 200)
    # headers: dict[str, str]
    # body:    bytes

These accept url (full URL, not path), optional headers (dict), optional body (bytes, for POST/PUT/PATCH), and optional timeout (float, seconds).

📖 Full extensions docs →


Test Suite

The port is validated against the complete httpx test suite1303 tests across 30+ modules, ported 1:1 from the original project.

Behavioral Differences

Difference Detail Why it's OK
Header ordering Default headers sent in different order Headers are unordered per RFC 9110 §5.3
MockTransport init Handler stored differently internally Test logic and assertions unchanged

Test Modifications (6 files)

Change Original New Reason
User-Agent python-httpx/… python-httpxr/… Reflects actual client identity
Logger name "httpx" "httpxr" Logs should identify the actual library
Timeout validation Timeout(pool=60.0) raises Succeeds PyO3 framework limitation
Test URLs Hardcoded port Dynamic server.url Random OS port in test server
Write timeout Catches WriteTimeout Catches TimeoutException Rust transport may buffer writes via OS kernel, surfacing timeout on read instead of write

Development

git clone https://github.com/bmsuisse/httpxr.git
cd httpxr
uv sync --group dev
maturin develop
uv run pytest tests/
uv run pyright

A pre-push hook runs pytest and pyright automatically before every push.


How It Was Built

Every line of code in this project was written by an AI coding agent powered by Claude Opus 4.6. The iterative process — running tests, reading failures, fixing the Rust implementation, rebuilding — was guided by human oversight: reviewing agent output, steering direction, and deciding what to tackle next. This was not a fully autonomous "press button and done" workflow, but a human-in-the-loop collaboration where the AI did the coding and the human kept it on track. Still, the project demonstrates what becomes possible when an AI agent is given a clear, measurable goal — and hints at a near future where this kind of work runs fully autonomously.

Why build another Rust HTTP library? Great Rust-powered Python HTTP clients already exist — pyreqwest, httpr, rnet, and others. This project was never about reinventing the wheel. It started as an experiment to see how well an AI coding agent performs when given a clear, well-scoped goal in a domain with established solutions. The two objectives — pass every httpx test and beat httpx in benchmarks — provided a tight feedback loop to push the agent's capabilities. Along the way the result turned into a genuinely useful library, so here it is. 🙂

The agent was given two objectives and iterated until both were achieved:

Phase 1: Correctness — Pass All httpx Tests

The complete httpx test suite (1300+ tests) served as the specification. The agent ported each test module, ran pytest, read the failures, fixed the Rust implementation, rebuilt, and repeated — across clients, models, transports, streaming, auth flows, and edge cases — until all 1303 tests passed.

Phase 2: Performance — Beat the Benchmarks

With correctness locked in, the agent ran benchmarks against 9 other HTTP libraries, profiled the hot path, and optimized: releasing the GIL during I/O, minimizing Python ↔ Rust boundary crossings, batching header construction, reusing connections and the tokio runtime. Each cycle was followed by a test run to ensure nothing regressed.

The iterative loop — correctness first, performance second, verify both continuously — produced a client that is fully compatible with httpx while being 2.3× faster sequentially and 12× faster under concurrency.

📖 Full development story →


License

Licensed under either of:

at your option.

This project is a Rust port of httpx by Encode OSS Ltd, originally licensed under the BSD 3-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

httpxr-0.30.22.tar.gz (6.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

httpxr-0.30.22-cp314-cp314t-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp314-cp314t-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp314-cp314-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.14Windows x86-64

httpxr-0.30.22-cp314-cp314-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp314-cp314-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

httpxr-0.30.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

httpxr-0.30.22-cp314-cp314-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

httpxr-0.30.22-cp314-cp314-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

httpxr-0.30.22-cp313-cp313t-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp313-cp313t-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp313-cp313-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.13Windows x86-64

httpxr-0.30.22-cp313-cp313-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp313-cp313-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

httpxr-0.30.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

httpxr-0.30.22-cp313-cp313-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

httpxr-0.30.22-cp313-cp313-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

httpxr-0.30.22-cp312-cp312-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.12Windows x86-64

httpxr-0.30.22-cp312-cp312-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp312-cp312-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

httpxr-0.30.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

httpxr-0.30.22-cp312-cp312-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

httpxr-0.30.22-cp312-cp312-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

httpxr-0.30.22-cp311-cp311-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.11Windows x86-64

httpxr-0.30.22-cp311-cp311-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp311-cp311-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

httpxr-0.30.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

httpxr-0.30.22-cp311-cp311-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

httpxr-0.30.22-cp311-cp311-macosx_10_12_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

httpxr-0.30.22-cp310-cp310-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.10Windows x86-64

httpxr-0.30.22-cp310-cp310-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

httpxr-0.30.22-cp310-cp310-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

httpxr-0.30.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

File details

Details for the file httpxr-0.30.22.tar.gz.

File metadata

  • Download URL: httpxr-0.30.22.tar.gz
  • Upload date:
  • Size: 6.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22.tar.gz
Algorithm Hash digest
SHA256 3c8fbb5ca1e1c29345d583950e0a13cb86f7530d81afa842669ca2618454e393
MD5 54c88993a4f36baaca7af0e9f36d6dd4
BLAKE2b-256 d71773ae6aa6d3cc8ffe10315c0ec97a6ce916f20ac8e03db11b17bda5263267

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6d597fdaaaf2e13fc1d3a7bde769dd039339c981ce4e528a9c765112de52f719
MD5 9defdf543ce2a9d80ea698f002f0b538
BLAKE2b-256 0aa81edb0a93ccf04e94b823e0c7e48293c11e5d63d11e3e2f8178048c542dab

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f04600d57daf74ee85cf4131e55b31f09404bd73dcaf14c77e044b6cbb1a9dbe
MD5 c2d838a045c85e767a8df6467a152fef
BLAKE2b-256 760ae66a63e3d6f26e2a81d64272e9c102894a79ff97e6d2bc2ff107d98052c5

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e333280fe3f1abea7c4fc4aa5aa5a28b38db52f97bccdc29c5dfeacff4c61e2c
MD5 1350148e7f6779e6c5e1f36f8184e402
BLAKE2b-256 477a0e80408d33b110963c9a861c2d95f8b241cfdfccb3b9346fccb2e006d3a2

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d2727a0febbe8cb103e5030d7646d6ed4235cd075c1cf5932c2ca302aa9cc160
MD5 7064d02c5f42f7aa51cbefbdd6898291
BLAKE2b-256 d2ef144d49cba34ec96a534ee8ac4264886f2390ebaa05173a32f783f3f76aa7

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9670beadf2c523aa5a82cd408e0b70a499cdb82e27a96b6093f7bd47701aaa7d
MD5 8239850acd3ef4ad124e249bba458c69
BLAKE2b-256 c863d64a538be55e6dc586083963ca739c06ed2a33736ba1a4c1cef4f9b18611

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bc5676e5f03cf1cf8de1a1038e634b365a513c0718fc254487efeea49e0e5b95
MD5 7d2570b51b0bb23acb2894cdddba6ba4
BLAKE2b-256 b0b6d9b351f03feac1d12554dd429c15c5ec71911a2c290bf2e2286acf7d97e6

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: httpxr-0.30.22-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 712f9dd93f0abbc00970b9666817fa9a09ffc7490b1e5fe3d80ae89b1b49abbb
MD5 7905ba47fe50a501ab08d6908d0caf91
BLAKE2b-256 8ddf54de2ba5e6367a4d524258a83c99d4f3a9ad960e847f9bdf30d99af98b81

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d0aeacab48d15e6f069b5b035bb1e763387c9cd010982017020f1db762b4bb3c
MD5 d57818abc0d8b03eb378f574c64bb24f
BLAKE2b-256 8b6cbc2e22218128b08ccfb50ab3b9b5f4511f0ff81565148f1e354b22611a15

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4bb7973a2f8ba9d05aa46602f7017ef159fcd5d51010c5421470ca82154b74a8
MD5 80726ca11e8cf244417e19bc6aa6d715
BLAKE2b-256 615166380a7eae1dce03de10674993fdbc8227b1778a088bce9ea0aea2cba839

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe22d59fe56c803c233c9b02b9e1ff9ea82b880deabf4d4726bcbc70f09b0b37
MD5 911c27c87a60ea9a25cb66e016b724d6
BLAKE2b-256 b9dc861ec2d0fff8022b9c7303520deff4f2fdcd43823f18dc80cc99b566baa4

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dbdb6e799d7e24d8e88dd2cc20e9b5cf218c4079471009508308a7cd9bd75ec5
MD5 bbc793cf19d3216736736a040944247c
BLAKE2b-256 bd010b092f489766a568c526125d9d5366a36749ad524b5e7e79fb5dd9ff9d43

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b65cd5f3024b6ae7b3af4939d5d9ef2c470d2d2c50b40772e0ddf68c94dc14e
MD5 8a24246dd5ec700713c9a7bd94e91aac
BLAKE2b-256 38725ad1364bb9952b51df9f6812cca4ad62effdc30cb8cf669214fdb0ff8ff5

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0d503d9e966b10d29b0328a86ab0f0bb10fae232dd2d6eda35f7b980e3edd0d1
MD5 0076c2735ec9e4b3b8bc7ddad44e2948
BLAKE2b-256 eebbb39c7d0ab29eb10b70f2f0185ede02b586cb8677605fb6d79a4d405fdc59

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5df7b98ccdf3c5b33c2d9e4a4744c923a66c60ef6e5ae974f44de646b4cbd7e0
MD5 b59e299e13eca22d22aad73f539195ba
BLAKE2b-256 db980fbe3fcc6e4be8c23d0ff01fbc1e44039e451e30b0c8858abb7e71019636

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e058f2b0bc184fe4df3341c2ae8504e5a8c3023bcc1ccd7b329a890715beb67
MD5 005573bde55aa3fa601c93868d4504ad
BLAKE2b-256 102b5bad11379beea0eb87621db1dc3e7b27c2d7589770a101f37cb5b97fa803

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: httpxr-0.30.22-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1fdbcc26fd1d8611a51eace95bc190eb93f85ed807c6f08fa3ac84e728ff4e9a
MD5 82224a0eee4001b7243f4e307416a7f6
BLAKE2b-256 3e7572d0d23be64e7abb8dda8d2edd9179d7a536ed6dbabd54b040f70823a6ae

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3227dc94173274aede2faef61296257695c2d6c98c2209d05e3d71abda30d9fe
MD5 9c0e69efecd1a34e5ba496ac0db80f98
BLAKE2b-256 c3398926d74d8b39a81ba11006f5214053b0dd51d16251001f5877958f4ac7c0

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 878e365c9d6b58c039d22c272b9d40ec1f8398f82bd8c9cbe3251db2a7d41fed
MD5 0e785415246578e3ef2ce10f368eeba3
BLAKE2b-256 26c8797fc053809f56d598cf47769919d6ab5f90e574049d6be8e19f9b16b184

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5babdf434e36f7d219b5936c171acbe3e101b727f887f1dabff7828eda0b9de
MD5 523f0da23b7bcfff0911d74c634649ad
BLAKE2b-256 24522b775f4158d6cf1bded27a612e67d3b016f6676f07d41038fadfa755bd5d

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c833948f29e5fd286f37e27124e110ae145936d1a9c4cfb4329c410cd8c7407c
MD5 6890310463df82475e8660f738256512
BLAKE2b-256 a59ed188084c9bd281f351276aee932cf9d0cc3a11e6749ebefa916208b6014b

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5109afd17037cda8ec4d1c31f88fb094a3c9452a73af83e784a0cfa4f9dc6bab
MD5 50b8b13d81122284f4e83da9ad1dd09d
BLAKE2b-256 ec43051aeb1a6d57cd7ec5cc8710aa8edbd9ecb5d4039f528bd8a4fabe371d74

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 efc5b72012b2437aca411c000fc7751101365180a10109e13542c8b2a3df8bdf
MD5 3f810f72b38fbbc50981f832ae19c57e
BLAKE2b-256 111463fdaa4f4c8e2a01292832712456ccc33fb6e9f5b2f7ae52b8bb04d8ed26

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: httpxr-0.30.22-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 232df803b501fbfd873528c00b24b737efd80cef0af15e9f77f2f8041fb1bff3
MD5 701225bc62670a780c7a48cb3fb85e9f
BLAKE2b-256 0d5157025121dfdd89bb8e341a3d1505d9eec322a16cb35f979e999504f618dc

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6d30698aa1973f405c49a08e74f547b8a60b5b42adc8407cdf5006f2bd2aa561
MD5 9bf7d617340678e94caeab243652d5cc
BLAKE2b-256 74fa9e58c382f4a520cbeefecc83cd0abaf71f8590702207ea25c3aa517f74b4

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 739142c4eb8cab5459dc41b7fc3c60d20eef8e0b25453e32de04e46d06161b8f
MD5 3ec59e60119fccd0075cb5ee60470cc9
BLAKE2b-256 48089fafbe583163fb425af3b4595b579d9ead50903a19b27af0b811d15f1bff

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4eafe2123e88e6ea53561bc772fd79049731f638a3f40a2476cc593a4dacf0bc
MD5 cdc0d66b2c181cb9e0bce4fc85986c2b
BLAKE2b-256 53ee75154d94ece5c83e6b219d33c7d29bd0337cecb69c6cd1696bee5fd0eb15

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 927f166209c23c483c4dd124e3953b6ae7ba6eae397f30ffffb8b38b43595775
MD5 0e80d7d3b3f27f5d31778b43de7e5a03
BLAKE2b-256 1f2453c4bcb91b2a913fd42a9ca1f2bc64cdd13a11906270c18231dec68b1924

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bb94e4ac9a7a6b233b3564de814df74ff143644db4d1a493e907777e67a79de
MD5 8a0f9d1c438aec4addf5ce1cae5ca27e
BLAKE2b-256 5e2c829b83a7076bb33593846a9edf320a0802a178163caa0bc3ea31aca365f5

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a4f65afad0c2ed23ce4b766f7d48ffe0d1f142e1228a996b3b106021a7028f58
MD5 1661a48f252ac8e906cf706e2047c7b2
BLAKE2b-256 da77ce5c3fc8152cf641fb94d58c8255456a55fc407a2a1414017ff85186c4dd

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: httpxr-0.30.22-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bfa7de610c119b2edf708ade8b0eb719c9a41183a37588ebcdbaf7b0203cdcce
MD5 17b1c4447c788db61a0a9f1237d6f7a2
BLAKE2b-256 2d1da87123d39a91c004238fbc510c38ebe7f68a91eadd45c1e87696db44ec5f

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 351a82e583224069cc7d74f768aa4ef56b2aaac7c8a411f70ebbad4085d97749
MD5 d195fe088a7365d363ff050106521f15
BLAKE2b-256 4c8764bd89924a85e0da7ba82345083220404c65ca88655109d2dee89f85323e

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 109d5e269f0e9495c18d9d749d4466cb16b3e47dbbad50787ef9b86b289cdb2b
MD5 f82e7bfe1a01cb28dad8cbb631e5f1b7
BLAKE2b-256 cac66d299f17a68c3badde0f216f346457023d219ec5acefda0d0bda1cdbadc1

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47117a8cbdb3e2aa105b96b9c0c0530a17a1b41c6054733a1b554c62e1a5b7ec
MD5 60f34709dd618899d9843968720d4697
BLAKE2b-256 9fee23ceb55fbe575dbaa8caeb5b794f874199f358ebed264588a3f12af91fb1

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dadd06dd909bcda5c6a8470efebded743ea7657f835255c426ac8849122aa48e
MD5 c5a86cc6c884b371ba13afaee043a5ed
BLAKE2b-256 9fbab03ae6b06d23f9fc24c924a0204a35d158ac3e1726a2abd68ffa4d2b677f

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ba283ba7fca5bf986ab934a8937eb0698275e4903f8212978a4573fe4962265
MD5 582224f1869be6919f877d0fdc377ef0
BLAKE2b-256 5d3226fa07f7fcc431729e9fd6cec093c12ab4d4c338f2b30f17e61056de8bbf

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 569c002329739b4682d3a97b03f3999ad3c4ae207f1829d425f74d60d33a8650
MD5 f0086ff60b099e74160177c22d68d100
BLAKE2b-256 ae090d44f1e98001c65ff801c4125254afa82d170ac90267182560ac37a6435f

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: httpxr-0.30.22-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.22-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 54b3779cfba18a0c701eaeafa538b6ec426ef50dbddb967e091629b2b8337c03
MD5 c65008deacfdb39bc18cf4833b04b132
BLAKE2b-256 80e9967bf5d8bedf506afa3b27555e09648ef745fd85467c3ad002409adb4030

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de027621645a0c5b769d173373fc3be24bff121e63786c9a6a9a6b65b9f1147b
MD5 e2fb737e7d38a1651b84ee9a770bcd83
BLAKE2b-256 caa701d7cc2de9dfb3b5d6de8fc57fd6c5bc944feb9a0f8cc2e688612a8dc8a3

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a89a978ae3485f85986a4ed255ef6275da1d4b5b818549c2c847aa2c4c519f92
MD5 dec9d82515da071bcf3b21f8b85b3f64
BLAKE2b-256 19268951eb071080388067d80e22edacf7a5de322b55b013ada50bf71766790f

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f45562709fccde03da7c747efaa54902e568e33b6d0da270b6aad1ef3263270
MD5 83514e52e561bc4812a80e000ad893d0
BLAKE2b-256 4dbf720c7a1a3adbbb2aea0b0807e9206c0623e0be4df0ab8bb7413e2dea5be6

See more details on using hashes here.

File details

Details for the file httpxr-0.30.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for httpxr-0.30.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8adc1e7f4a1415681a79845f776bfdac0834e6680e22214a95ac744b0d98395d
MD5 84cf775094f1d0c3f207453bab17cb61
BLAKE2b-256 c493bf8a91410a78a807c7b20dd44f0290106bce63bd5ba29991f886f626de7d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page