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

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

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.

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.

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.

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

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.

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).


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.5.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.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

httpxr-0.30.5-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.5-cp313-cp313t-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

httpxr-0.30.5-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.5-cp313-cp313-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

httpxr-0.30.5-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.5-cp312-cp312-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

httpxr-0.30.5-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.5-cp311-cp311-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

httpxr-0.30.5-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.5-cp310-cp310-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.5-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.5-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.5.tar.gz.

File metadata

  • Download URL: httpxr-0.30.5.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.5.tar.gz
Algorithm Hash digest
SHA256 6e503e148cbf36fef361058a36630d675001d9d3bd2123676b3d80f06f2ab86f
MD5 f94eacebe85bdfa14d8d06cd7d2a3af7
BLAKE2b-256 3cc2eba1afb328302be7e4aad3433d378979e9d76e1d4b8922b699d9b598efb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d542a94457ddf4d0bdca0f2e85b1ecdd47100933378c415e616e943919caefb3
MD5 7107b5991a8f6727fde2c9c4e4fac889
BLAKE2b-256 ff0cb964cd99be64b869f0e0964f6cf538264ae5a96cc11a7ebb0be8ea4440f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8a6d66e54bba42e8ec0ed4206354dd8e896ca5e482067ea9d933a488bc6ac4ac
MD5 dcd44e23b02a676306ad15fad3b29f5b
BLAKE2b-256 23863723eabfc4e656e3ef69e6949426477fe7961f1b6cc22048e8a418662952

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a05d502d30bd6457015e725990b6048ec575e08119b05f652fe4dd96014464c8
MD5 564246f50a59a014a957822971dc16c4
BLAKE2b-256 471484cadb02879b3cf752dd25f743de181f803feda3069eb5960ae3acf72309

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f8e976714c595468b7a3d5b38abbe57d68777e601e0b4d67f47d7e07f266ea9
MD5 5ec53c9486f39aee944d70c232fbaffc
BLAKE2b-256 e2509e8048fdb965aeee997ebc75820cc43072907a36340f236e4976fc32fcb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8cbff47837030656e78578321d8dbafd5081d9eedd5cb742e7c6efeafb8d89ff
MD5 d0fb2a43d8d0afdeb583155a2f20ab1b
BLAKE2b-256 ef3f29f8eed4a0c8e2c03829ca22a9ebd2f359a51170f886a35519323b2ba130

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 097c2fb59ea268bb52ce6d03cf797df47e2c791d87398b57546e00236b837d26
MD5 da4d18c315830432c45dd3db85be0f4e
BLAKE2b-256 239de5ebb2b7af31a62449c1bf2f225100e709b96f1a02fad57aeaab603f7194

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.5-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.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2015052cc2e72cbb026e88eed990f0ac194ba21579116ea3fb967b85fffa1495
MD5 0787f029718757ab162b706cb70e33d5
BLAKE2b-256 6c0f887fb15d59342313bb68ad05c373d6ec2a170abcc46f0cb7e496ae093eed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9dbf1f06526274c94c929cb15d1a1e327cb77d3a8d1375c5089b5019a7a094f0
MD5 7338984b7e441d833329be52574cb6a2
BLAKE2b-256 419e9bef6a710909006b502f7f0c0a524010f2527b59801ab1b55363b0c58847

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 50ba1e905e587c752671b191cf6054dd7f14f019b3f65ee2c0b627f670718c41
MD5 3feb21588b91eda7d3a927e8489a3abf
BLAKE2b-256 7b569ec13ac13f5e9e0c2db3992adc8de770115786402c8d7382c48494027083

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 20f1b7f9a5aed18a7dc25d2d5754387d7569c85e1274c10d381d240e8dba7f25
MD5 e8fa7dd5225cf893de945102295142cc
BLAKE2b-256 d9ac03b86faf1c53b41fde4f0fda55bc58a7d2d5a2d3951cc296b247ceacf9b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8179d62ccdb9a974910a13fb15fe08f32d3dd9e0cde38c9e81ce87643c5aba09
MD5 7f542c2a4ced4922b6de3f894b512c33
BLAKE2b-256 3a16cda1b4816c244a399f9367d46e79316ae995ed764aa7b107f81428a2f353

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 589cda1b774140f1f7d8b68e89f79f5526fccf220b1b4bdf5505afbb4ee539f7
MD5 2a6250774a0b1b6e2b189a9d9d7820d7
BLAKE2b-256 77a8f57aefb5a27d3dc841f3e5b22f94c723e9ecf07ae33012137d73eb001686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 db2c3a0c80f1e07768ffa8bbff48dc6ab2d6b75615781169b2b7829e96e43135
MD5 c71fb7e36329ca4a73d3a75938bf6069
BLAKE2b-256 e4f541e765ff24e38460de6305213d06b7cbaa422432cab1acc2e945b5149ae2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 897f17de2bd4997b4134af3d2461a89e789981a9319f43aa82ce7cb00f5ab100
MD5 10f30de0cc828080f7bae5bba85e5464
BLAKE2b-256 0c979961ca9d48566581164b125c1c91fc86c1ba727af202cf61570967cec03f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d241b08710fac86a163807c9d7cc9bcf4b87be373efc25080c5d85e463e569ca
MD5 12f77c83446a892a3877a03b57349044
BLAKE2b-256 4347125917d484d443a9281ed15a19bf448f5cca31e2f54491781e12e5d72e10

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 30db2602693b67928cf5354ca7956ad96452dfe18c0889b86cf0450c866320eb
MD5 525b7219668cc0dddc4d9c05a014de38
BLAKE2b-256 501df727b294d0baf7a17423b1dce763814cd810d10a92714fef518d36195ec9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2036b01d1435b74804eeea04df50f70a9da6beb3bf4f5e1a5dc1210e6ad01d1
MD5 9ca69fda20c98458862028c9cb821b79
BLAKE2b-256 d384a59c801a408e236a68507301493c22b4fb3a6a851ee7438e5a533aa82392

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ae7df11730c4e9c3676fbda40943482c8c4e11398f26e0c56af10c19d2cef82
MD5 57d1480c71c38111eadfd9df4e15d7ba
BLAKE2b-256 9a48c41c19b93695465e41a2ceaa7cc0a117e656fe8c1ffa13ce9a77ef967966

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d995457cfbce21a835bae61d7dff986952d5246c2c0415011728221aaf56644
MD5 1ac2b3924c72706156bda53637b78ea9
BLAKE2b-256 49c35b3462094597cb6fbf938c63b66cebbfdd5977b9d99414adfc2ce50280d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d9311ef3ff18bf054adcebce53fbb1b448e2ec3769b45e4d8bb47b88fc27b71a
MD5 3e063bc0cdd9529691b214268269d0cf
BLAKE2b-256 19244ef13a858d7bcb9b92950e379f9e2fae3188f3b98de64c2ae06c6fb49099

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89ce7ddb5b0c5869ce3b5837ef138cd02224f754502ed4b0db6fdfbbd3abcab5
MD5 131d428907cb3594dd31771255767caa
BLAKE2b-256 b64ab0e7ba5615f45b2d39eb1e8a3e70f0f8b0985720fd4a02b33b21d0a2704a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 506b58ceb12a94cd223909e9487271cd9736c5b6e5513d320e41108b78938371
MD5 237d63747dac244efcb54a1f6303afe2
BLAKE2b-256 9e0beff68f99a226265689143d7134781ae81570a7c04eb87758b00fa6eb6fb3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fb4f6d1010ef967f9bc3d6c38ec143baf3e15aeb022186999e1b9e481c1b9381
MD5 9d4d035fc6c5992958e49408d68b19dd
BLAKE2b-256 747a8e635b3a8d226424e211f9a2ba02e6b0c80ae0dda13bbed1d7ed81f0d975

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7df2a3117f72e3a372d36b38f6be11d4ded8aea464630239408bd5fd30217db5
MD5 47513f059d481bd548e863ea632d296f
BLAKE2b-256 d6b0127b4a942f1af3e9e4273d9155ec1f1ff3b890117245f06c0078cdb79578

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55b6f5781fcbf0861e74357307c2a8a4f398d217c276b258d9bf8fadd686504e
MD5 9d330f367f22d09e9bcb13c11e761cc1
BLAKE2b-256 e8b380716124630a687e46d469850d93f8cd47eb6211ef3e809e10d4adfd011b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 348facecf1953fd70374a60e58c31dfa847129a86f62be31df44be3b83088cbd
MD5 7b21f597ea8388ea0b4c35f05f68d6b8
BLAKE2b-256 c0a99fb4c0b85a166d5999a766008a45a615de4f3127bf01fd924a9c950297e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 70abb9ffdc4036036c7d6a263de78aa317823750a2431e9aa5053717c93b0869
MD5 3a2ca497e7b08eec0e3717cc9e5a2f4d
BLAKE2b-256 d2ad2484789e80ac2e2eac6ad3ecede42e5e42723b19953f0d68ef5f660eac01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 38ab6aa310a01854b0076346d44b4574ac79c492ea5fee7af93cafbe1941a2f8
MD5 9ed7032897f0701cbbf88b097603e3a3
BLAKE2b-256 11662552f3991e4c1d7febbfa7c610046dbe3c789c85ae6b309f073d371212c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58d744d84a19d11fb126147051eb8ac16f87240afeb81cf143fc80ed1ec0752c
MD5 6e0e09e19b7b63f257b88030f74484c5
BLAKE2b-256 6c334a676a4bc5ec8ad32d1fd523338065c73f5ec44df0204a745450fb158e52

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0e50f42285e59396d4c246ab1c3876830affa01e9285a8accc2daf7b51dbbe88
MD5 740c4d0b063cd4b4ddf6b341d4b6678f
BLAKE2b-256 01f43c3ad586c924519ed01657922e0c5592a4e1d45baaaa346570b0cff68962

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6244d4783f79ae73c8938cf17ab2331e32f2043693f94c1b88d0f24ec17b488a
MD5 3233cdaa0caba0c1558c0bf5c0f78d26
BLAKE2b-256 5f65031e3c066c33b600485099a7142e39fea2996b794f2882a70fbb805ed99e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e43eb27d7de90bea125c7d3047f6bee0f11cb69665764e73922a8ddfa6bf4b07
MD5 c1252c79df54780f3c7b21422f2343ce
BLAKE2b-256 d9fd2aea71c734c61877a0d0321f98bd7a105776d63c7b24a13c7b3b19e34dd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 638165974d4b8b0571cc0fe4682729f0ec00842eda4431655c43e9d0bd85fabb
MD5 6ef568c1c7983f0176f6359ef398edca
BLAKE2b-256 26c2ee7a50cf6a3e309e9df395543e22d14417f86149a79db9c2877fac1dcb2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2f3f852a671cf6d5876924770ad34e7289767c36367be6f444aa47937f5b1e4c
MD5 e1e2ca41aa85395140d6ad0d8e68a3da
BLAKE2b-256 ee13ca9312adf0debe2af9ed185c9855c62137c7e8a9583a03e480ead5f1b221

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55a6780707d5f9a4973be63f3388bcaa160d575feda729bd9f553810ea096a99
MD5 adcf1e35eb5de4616abcbc2488fb07a5
BLAKE2b-256 3665b72e6ec6557aa93c8127329319703cdfde35cd02f532f94ef4d11d9ea292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 da56cfa9d8de33878870735a9e4698d5eda7fb87674aaa757c6b1feba5f857aa
MD5 41f708300d613cfff1f0c091f51baefb
BLAKE2b-256 3a3e3a0d6b9d2d3524de39898add45ce5fd3fa112c3de6c4d5377590c3e0b3a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d36bce88ce988ff2d6b00a9e2e4ad269224f1465e98ff7928f294f58d1b3ba4a
MD5 c57d82ec488e8dde7f4d91144fd548e9
BLAKE2b-256 a026b3ca6338d2492c49bc079ba6d342824e086d30e8f2207d1951b089877427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dde252ada5726f0bf594a50d02f9487c3a8b5a6521c9a8539b53c53c622b7b7b
MD5 cddc0ef9ac0add56e1f39f978138f4f1
BLAKE2b-256 cafac8d306865b979f5122f4d124a0adf09a2b4dae08d2f51916dd3ab4df10aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 92dcc81179f01a4701adeb20a55048567e98179d525639555712929a23223aad
MD5 4b5fb1c3c83da4b8a3e599bac5d6f52d
BLAKE2b-256 480a2d4c2fa56d4734e702f5e82039e81e01ef27d7619e4e5b8be0cfca5079d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 404dae7645050a715e8f87cdc6b83435ffbde04d0aa0ddf4e5bca39142692135
MD5 612b0690773885b9bed2f117b34cace3
BLAKE2b-256 3867665998db4e990b1fc3886e26f505e56a08681aff2710b44c0a29b8dea169

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 801c51881e450c459598ad3d6e743527f257dd01311de7ccaba212097c7e9e44
MD5 4680f9dd42d42bb653b1a2ccce4aa921
BLAKE2b-256 e4daab039e4d8cae50c591b8abcd8ff364c45e8d20e55e8d75d8e4bd0ba3bb20

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