Skip to main content

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

Project description

httpxr

CI PyPI version Python versions Docs

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

📖 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 is a faithful port of the httpx HTTP client with one goal: make it faster by replacing the Python internals with Rust. The Python API stays identical — swap import httpx for import httpxr and everything just works, but with the performance benefits of native Rust networking, TLS, and compression.

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.20 0.12 0.10 0.18 0.24 0.23 0.30 0.34 0.38 0.39
50 Sequential GETs 7.84 6.52 6.33 8.98 10.73 12.91 15.17 17.76 18.78 19.65
50 Concurrent GETs 5.23 7.31 6.56 6.23 7.85 12.31 16.26 10.15 70.23 21.14

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.4× faster than httpx for sequential workloads
  • ~13× 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.10-0.12ms) 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 python benchmarks/run_benchmark.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.4× faster sequentially and 13× 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.6.tar.gz (6.7 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.6-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

httpxr-0.30.6-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.2 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

httpxr-0.30.6-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.6-cp314-cp314t-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

httpxr-0.30.6-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.6-cp314-cp314-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-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.6-cp314-cp314-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

httpxr-0.30.6-cp313-cp313t-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

httpxr-0.30.6-cp313-cp313-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-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.6-cp313-cp313-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

httpxr-0.30.6-cp312-cp312-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

httpxr-0.30.6-cp312-cp312-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

httpxr-0.30.6-cp311-cp311-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.11Windows x86-64

httpxr-0.30.6-cp311-cp311-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

httpxr-0.30.6-cp311-cp311-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-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.6-cp311-cp311-macosx_11_0_arm64.whl (3.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

httpxr-0.30.6-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10Windows x86-64

httpxr-0.30.6-cp310-cp310-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

httpxr-0.30.6-cp310-cp310-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.6-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.6-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.6.tar.gz.

File metadata

  • Download URL: httpxr-0.30.6.tar.gz
  • Upload date:
  • Size: 6.7 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.6.tar.gz
Algorithm Hash digest
SHA256 c2d68915f52dc6dc8bf89755ee8cd3b4c1ce60b0643e39f82008a144384cc277
MD5 b8cacf549bb130fb180e819640e522d3
BLAKE2b-256 6f2093e168c99254d9e181aa76d95ccdaeacf4098153199f85b30b73da5a4f03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75fd2df23f310480b7414c762ad28bcb7d9d94acb3287edf048b7f74a06df4e6
MD5 20beeb63b8c779018a723731c8884de8
BLAKE2b-256 b7c60a4353a99fc5e5e8ff7848c0414c0b65242bf9e1d8dd902164c7fdb9c00a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d8a3d1d2b16f972c960737c15dc0abd419d66866d33c7e868c1ab8e2a1503854
MD5 f197f1887013d8360abc3cec3238f973
BLAKE2b-256 1a1d784f7dbf38c5d426be5f0ccc99192d8a398e58233ef776f1d8c07fb889a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 27cb47658fe8fc39756ea5a5b1f4df71e8e668d32b9e5a07293c3b37052f7502
MD5 9cbec1b351d72814854b7dc6ec48fa1b
BLAKE2b-256 ce60ee8993af851647bf838f6ebbfb08ac823e6e5829a7f41f762275287793e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb92f3b2a3cebc352a6e1c5e2ddf0dcd98850829fc667e33c1340b9e51252294
MD5 c919ef53e3e0077640b01b34a395d31b
BLAKE2b-256 a77a06f83817251b15f6d6f3a5b48469b6b6376435558c4d25a8079cf53c46c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 328b22a4851db44bc8fc920a52794d3ed4f9cbf8a5089690dee884dbaf146563
MD5 aeadd196d393c3b70204d5176ed37e8e
BLAKE2b-256 64413c4f96ee82fd3b27af7b71a4d7b5fee457d1adcf5757bb60eee6a8b02b56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 25cc7209eae685cafacec01be092be3843c778684e066418b39cf107fc8ef022
MD5 a0dc9e6894d2641c31bf97efb59dc01a
BLAKE2b-256 1eaa87786ef4aedb360157e9c45da7d65b9b4b8daffbcb37e4c9bb932a085a1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.6-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.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 f249691e78a29529656a73bd8868ca374187b2cbecb96fd89565a985febe1896
MD5 2554da40a30646713f114bea01eb84fa
BLAKE2b-256 7d143ec096dd35de976747bd7a6bfa0f0e6ae9740276d73db22be372d6f489f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 04bc664c11aad032ed34857645a24f09a4f1f0c8e5f00985f732ccb85aa5d811
MD5 7facde97ecd3181070d9f61d85dd1935
BLAKE2b-256 5fde554ba94c2c8972c54ec7e0857193432b96b906f7f9898063ff3fa99dfd04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fb692ad19abcbaff496b80a18017460b1de5150895308056f6cc214324915fa4
MD5 06a3a38cc96eb7ea4d92a7a2d4d6ff27
BLAKE2b-256 6d9637c740a21e95c2c5e806b51e7edc62231c29169104ad0863f4a114e1d4ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f295ba45e6e8612ce247396d28f5e44d9eee7c55fd5cb3306f7dc7a04b22a79b
MD5 0642f58a04c5fe396ed9e7480b390fd0
BLAKE2b-256 15b40aabaf2b83b4c050dfac50906e1261b4cc2688d92d51af472ee7bdb33995

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 46d3b9a17d94c0a92dd2c1dc1281dcdf1a76f14bdc8f222bf8108fa3927f8522
MD5 078dc0192b0a92d7c1f99d4cec52c345
BLAKE2b-256 a74a757037d5c87a48aa174a7cf49026d0fab60cac9f86aab4c2045b5da5ca65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b70b2b92aaf555bb48cd0c9a6e7c16a0b342092ef319fca37177e3fb91fbefd6
MD5 7924707f05835f0e96fa1e1d926acd8d
BLAKE2b-256 ab38381ef8cffd9b7a378db2b22ebf1e02cb215dab45d503f7c7c4c14ae77ac6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2842db9736c4e41f2d134d04da18402bc5b11fd3477c8a06be47ebd6e56da00
MD5 6b870a857af5194103027623c8b3466e
BLAKE2b-256 1361a5963a0bf76c2acb63426ec50dc64ddc105eba493a77e9fb4d59f43a2f10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 355d32ddf098d214b81748752aa4f7ea3cfe08fe9623db3022ea1d550147d69f
MD5 a29268ed167f35a786c4b748aea30cae
BLAKE2b-256 f6cb3c6a4ebc8546be40d2affed3b23eb14e09ad3954d4cc384034ea618d0156

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9ad3bd355a2d7eec8a5b35cc4f62f0d82d2932d7c8db495e6efc03ad7eb07b2f
MD5 f8cf04c36d69050989d0e166b446c468
BLAKE2b-256 e03fb60fd15293f2219ceaf88ae2c0448e3d680fb7641c51621155f2d1133ce0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.6-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.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6aa5a5346cb7f9a727a1337573fa879d8ecce241d2b3dc5dd91a33fc580f3ef5
MD5 cbab8ced679678b19bbed7fe2db10bc6
BLAKE2b-256 cc61f01d3e7f40c29e4d6ff4d23d9a497d8ee02e30dbd6de508333cdfda2a643

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 744440d5bb309078222581b1969be84d430c13310c978e48f338c9c6972b5dfc
MD5 e5ae6e9f4a1fb7c0b963c8a5788020c9
BLAKE2b-256 8ea87ecb390a3c9706a77d41c222889f049c782e62a7de835c55dc97a8d61f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b576bfe12ae22fd228e10fd406f4633742a2bb1a132f82195eeedd0ba8805028
MD5 4901a4a4af80c9f578867e796e0ec45a
BLAKE2b-256 b7aa24cae90949527290ebdeb66ceb6ff82898cc3bdb1b05267f4b347a19c948

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e44946b3e3bcf397e4301c2c6946ac6b0f40e458a4e6784f71ebaa7281798b25
MD5 3b0135f2342677fe2be09ed0c9877735
BLAKE2b-256 bc6c4ac479918d6f8a93e9b763ec6a7b76aa528d88333b616ad88bbdfc82f747

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 94fed8e9422e60bc6c3238e3f871f723ce816143f38202ad07a3f7fb9ceb24ae
MD5 be5be91e9263f71cd5182857db82efb2
BLAKE2b-256 583b4c070fb57aa92859439bcb88fba7ba7898177cb99184d844bdf22a437b2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4ceef74ab33f47834ffa79f3a090eda10353c110c75205b4b51c52ed038cdb7
MD5 5e49d83874701e2b714dd5355ea2359d
BLAKE2b-256 24a81cfe35b1ada2ef51f0b8aa10a1748d405587b01380e0b1cd1ed5042b51bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3a063228f8e20ab3e3d93b820ebf03bea2e199a0a2fc12b30ad0dcc0564dfcf8
MD5 c889dbeb26da0483d9f6dccb24e54d05
BLAKE2b-256 1f867561934e5f4e7904e0a83ac13506d8c8b024a38549b5190d53831cb2ff1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.6-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.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c7a3fd3061cf7bfd42f49e1afa5e9f2be459b31fdef9351666c7261f4b5acc32
MD5 5c0eccbdf53c4772f99c01f08224615c
BLAKE2b-256 82280a1efd88ccada0f6310c3e566cff805478a5e92e58f1f3bfced1f1a10a3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4963c2fa0dbfada0edc309df50f3199935c12fe452f93bc0d120e1ba4edbcaee
MD5 a84bcd9d5ac818c00e0a7084937ddcd5
BLAKE2b-256 e9b9b6383ce31e5a748b0247f271235bc78b69cb1aba9e8f7ecaf8f5a53e2359

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aaa0983e22575753614f4c208645bd1aaf4c6311652cb768c691b85a4a3ea96a
MD5 b7d4f7e2166a32d3dce2a829a5828690
BLAKE2b-256 5433a66b1fd40a174c862d43e5cbb1d27f668d3c1f7eae21e06bac2d94eaa93e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 36b6590a196973b7d859a0fd9bb11eaad9add71b1d7a86fe3adb4c4ab3f1622e
MD5 a1a78cbb14336faf7582b67ba90fddc0
BLAKE2b-256 ec13988d399610aafeb9b30dcf5391bcf55c238c606ec1c8ed15820764886a5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e3855a4813f5b634f957a26b76dac85fa66dad0d34375ed47258023b3e80912e
MD5 b9e914138f007373158f8aa01836df9b
BLAKE2b-256 ef56678bd79ab65055c87ab8ddd652e651c7e698b19c53c2ccafe1c19686a59c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27a9da37fd0b34e247b577d52edd5ab6ca7516c23ecc86e8c255d34dc5c5614c
MD5 7d26085ac03331179a0ba6297d88a7ec
BLAKE2b-256 72c053a3a45caf9171bfcc5d1ee78c78833f20430ff8df401a52650c34c8731c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f25d42c43f967fbd02298ee20d0505d36f36b9c5f8d8b3cf0ea5e3ae62d0bf9f
MD5 0eb7a44f461264025d2340952212e6ad
BLAKE2b-256 d900b5124ba1b139e6ac7ee7d5160ede9c8d24c4cbfd7c070206d368c367c829

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.8 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.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 02f1521e8688cfff54fbc4a01fa46a4dc258ab3d37e22de93f717ff476e3af37
MD5 a7846ce8b248cf2b5789d1d9cd800f38
BLAKE2b-256 6398629fe7156123047a8ecd8e3ce05436aa5a0472ce5117fb57549f15e0fc3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 28cf6ca4f3b54924777b77d2f175998a3a6e67a3f7d551517ce8db1d8d1c43b2
MD5 6d16991ef45d633fc60b299475d00952
BLAKE2b-256 4abc0368958ec4edeabe3150a11b84e68c859d0382ec3e9224b269590ad541d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aeeb35dc02b6d9c140ee1b8ca276f53730f36835b57454024981cf3f2257c3d2
MD5 806b4ca09f78c92b07b8217e9e6ca44f
BLAKE2b-256 2a48ca9ba2de1ea3c6d4450652a6988699c1ac62f9a04677c4e7c7a35cda6e19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a4fddde57c92b697ad7a584e4d8a003438911993d8e35157814af9838a2f875
MD5 ddc5ec3784b2e67a39956a0a90a46e5e
BLAKE2b-256 850feac176ff8800b911f8ebcb58ad905f8edcad419056364c39f5b8b322e78f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a758850a92c14a8d2061391a6bf99fd3fd76e5e0926a55364446b033e130cedb
MD5 ea5f28e547fb70e65ce37fbbf86787dc
BLAKE2b-256 f93813f133b833e1db85275e2cc0c7e636f1a3c1983a6f83fdba6c4f9f88b679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f6409352a86d3d98c9e353be2e0a1c7cf2fca37a72c91795d2b112a24ad0bb5
MD5 52681c5ef00a079791d5b9b2da72009a
BLAKE2b-256 93a4fc0a7af5a6b2df50d75f559542998b1bbcd4dacee8b39b8e36af066f0787

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f1d66683f0f570a2c300008dcc6a2d576c57dcd2e4daa4c6f9151cfda2511e00
MD5 7bb3623228dd95b1b59d9200a27dd6c0
BLAKE2b-256 dcfda1d03442fc57974d73309216eef55ac62a9534e806208c338cc76a3fa0a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.8 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.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d53cefcafcf2287562712143ad665b6e84dffd9b896fa84f4a90eb33c24ce554
MD5 feceb37cb32ec7c4031217c8f645a89c
BLAKE2b-256 50cc96cccf49c4998c33d3416157451f93b5597a3834e549ad426275ad194c1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b62338437617b9134353fb2f7d5767676874811e8b6fc6889c1f158c242dc4c9
MD5 b90a96432622847ce4174766fd5d33a1
BLAKE2b-256 bb823f106f0ffb5845edd7ed062750f4259a14c241a43381015837e9f58cdee6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 244de40c8d869ae48fb129b438b813e675998b0432fd1674c9b36cde9dca9126
MD5 8e0d3ee08037054e24b96a412644c51e
BLAKE2b-256 2084810138b6cfeb92baeb29fc21b9c34014a2be882899e223cdb03a0ed86c03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 300f4c872f2405c1fd6bbc60034c672e211fd443046d0ff68ec44a37755847c0
MD5 516c2e312d46e70e0933de5e089afc17
BLAKE2b-256 74241ee0c8150f46dc9b6228f535cca0895aa959355b9b22abc1136ef6f32c2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2b4e9f6319cb5e1ce2cff54e56ba54e87738ac2950f5f0de066df2e3d63c6248
MD5 8f5606d8d6c7699cc6dec85bec9a41a3
BLAKE2b-256 1bd9d31e8e81c8b969ea1cc249875312b855ee6a5981de3a62a04ad2e0d0edba

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