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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

httpxr-0.30.24-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.24-cp314-cp314-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

httpxr-0.30.24-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.24-cp313-cp313-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

httpxr-0.30.24-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.24-cp312-cp312-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

httpxr-0.30.24-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.24-cp311-cp311-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

httpxr-0.30.24-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.24-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.24-cp311-cp311-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

httpxr-0.30.24-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.24-cp310-cp310-musllinux_1_2_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.24-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.24-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.24.tar.gz.

File metadata

  • Download URL: httpxr-0.30.24.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.24.tar.gz
Algorithm Hash digest
SHA256 6c44f8642c787471e464973af56844874858416665c623598c7432892459be45
MD5 690afbabed810e94be4ed1bcc6219707
BLAKE2b-256 f3ba01517f4d6213821ac38529d829f494eeb77213ad24e81c2d0f12da4f3778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 56cd1c94c0467260c3354fdcb5124fbe589de92aa48b00b3ef6a1989ff4166e4
MD5 1ceaedb0b73b06ff7b263f438d7d7c36
BLAKE2b-256 2ed3094bf1000d2325bca89f35cd365fc0890290a21e3f9981ccac390081c7b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b6904cb0145dc3797c834b1cac5a70e0a6f13cbf573ddc824a718b7a4117186a
MD5 a2d8725660133716193c13d1d486ffd1
BLAKE2b-256 a6be645078adeff12e1694dfd38f25b57cebb7c3e0e034b342b62adcc4fb541e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6209fe7b2454659ffe3d9afb2c3b29a0cd42d3b3eea8e07c4070f30434529bb
MD5 b4bcb09ddc9ea1797a129c1621c19643
BLAKE2b-256 cec87f1a3ce3a1b93eb2b3237e8ca11c15768e78dfb02805c93c3d96534c691a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7a680e563b22e7ce7c46200c54ef23a7a28f8604ef078aa5bf7a527be0e5eb71
MD5 6817cfa1373aaab342dc4bd0b0f7f863
BLAKE2b-256 b3580f14c8289f36b5ae707f9447565ecf2b754fe93a09edb96013bceca6ebc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cff19338a678c9a7cd6f89488c9a59e879e4e8f594e49f221d674d7254810a86
MD5 71e09d5ce4365262eecb2b860a832940
BLAKE2b-256 fca5b94f04b8e5603347acef6f57b0f05bf821a97a6632c8a47f6d595fe42db5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 344a0857bde72680b623615c486809356d36a4fb2aa962d79ca5aeb7cd54cca7
MD5 951583ba8b1a710c820a3d3ecacfc926
BLAKE2b-256 a0c36644467f1cbda6c476027ce1e9f4605cfd62021e39e4172e68253ab41061

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.24-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.24-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 107b1fdc1fe078b3189bd3ba040ee1f4bde25cf1170ece46295c67a0d4757080
MD5 3942438a2428f3a4aa454e39d00932c3
BLAKE2b-256 8af4cf69dd4fc346f4d818320239ffa14ff9d2f199deaef29096c7b3a7aca393

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e626fceff8a736f0cfcd431fb92ad30c67c25c3bee06a02bc3c8536883810ee1
MD5 576957b0a0c8d579ab593c6ac74e473e
BLAKE2b-256 e56c1d957462f44309e3381a415baa4f19c11d3d33b9b28f30e1288b819e9420

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7ff5c2acd90b2cabd9d7c8a3d2b139fa57d54a810abe4e52b719c905354d1234
MD5 d3f8c2161545af1e51c21874a14462de
BLAKE2b-256 ba0729ccf23d908674a11f60e2cd91673ecbfe44b39601a8d496765512c75574

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3bdeef1fb8460902c37a1c10e5b7c18ddb39ca798dbe2c23b135d7df22241b33
MD5 e682fc3e8bba1972fb4d8fad43b9f4d7
BLAKE2b-256 d884d421c19d2c529b9a4dccaa38dd8834ff045f6995b695dc1ecdc0b0d8dd46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc2d7bcef380727ed7fc7f3961fd887e63fb82f498f0078ee75996a77a693da6
MD5 5a6e086daa4536c1005b64a3bba8e402
BLAKE2b-256 5402044a73fb18baead8b11ee84423045c18e1297dbe09eb1877fc818d5182b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f45c25160b1ae6acf6140730c8f2dfe0d93348db737d40dd8eaf68a0ae60c24
MD5 9aa5afb0077d54017e4d9b46bb767b7e
BLAKE2b-256 8006ea83d1898d65e5075ff5ae4c0ae074827a55666428427094dedfe38e8c26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e44690ba21d9bb4d06a048a664f52ff81393b1e868f5c18578e8c5ddc4753d55
MD5 cf273f093a967e16c8dd69e225b78119
BLAKE2b-256 8dafa556480526a7a2333cc9f61f2dbee5ef37134e5a6a9ee51105ccd59a4a22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6dacbfd0350322825849b511839c11503f064222c2af38a321cf3c01991aa655
MD5 e9a30acf389a87d093a1971e8fce0d76
BLAKE2b-256 4c6bbd0e93fdb8edd51e23a0259c1382e7a729fbada334451eb9e6a3a5685381

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a34b873811d8dcbe5f15da5fd6d0dc33ac4fd9467d2fa161107348f98919c3d2
MD5 4efb7247bd18ea11b8d2870ea6d70edf
BLAKE2b-256 a52c220c212981775c0a27eebc364f1253add20191b199021668fddd45b9179e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.24-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.24-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 64cf132a1c842076e1cd7e5d908fd721d61d0303364dfee228ea21355dc7b6a7
MD5 662f229de9413c1c8dc7e15b6388e3c8
BLAKE2b-256 6616425d065a480d5656f432db8de9321c790bbb9315bd671076d724c0733738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9461e41e5aee7bbcaec96e833f5333137b27531bcb6ce7a10fbf085991d047e9
MD5 e4806ecc1f636b955e9adce00308a9ac
BLAKE2b-256 7f71011d9f622d720ea9a502f58efdc7116dd85c1b4c92b89589f05093a7168e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6270e23f11162d74e45e3e6e4258314c0693a9a093e02dedb4e2818101ad81b0
MD5 dcb4607bf7e0944265e27e72cedbed7d
BLAKE2b-256 9fb684bb6c65da7345b1d43fb1f443b0ee44f48b7292e9e037956d15cfa3996a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a935410958623178f3fe8d8c150849b65da204989ee8745c998fa07b561694d6
MD5 0a075b6a9c07b19146f9bae797708855
BLAKE2b-256 584f4dfc031a2597456a1db13f028517c535a751c52e5e38d36fee126fffa01d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6cf55faf034c0a8186ecbb1554d8723bc9af977cf3e1abbf5a0e4fdffefc1945
MD5 f83dca445c19f1e9397212ec847dadb3
BLAKE2b-256 667443c7920fb4d1e1ba34d4959a3f09e7e7c32f7bd673d4e1631649da5631d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ffec345e71d7366776543ad897ab87f39247e2b3c0ea46708a341a80739c4ca6
MD5 7c153f1957a7a31bcb376a0d77a2ae53
BLAKE2b-256 a8c1ca0be7e092ccf8ff93f7b5600cfaf20693c14b76c813cfc64cfb13d74f15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 75fb51e980a7a3de5bbac3caf7f2e9d5821c5910385982e3243761b4ea713f86
MD5 4797bbe37b6354d4e9511e2d9577f4f8
BLAKE2b-256 209a73a9b1a19add9d11dd184e7a7504ce3ad835764aff754d952eadb98bd19d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.24-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.24-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2d22d2e43b422b52b53bf80d2f745fd7698fa1ca747f4b73c94c9dcc215a4f80
MD5 5c2d37748c2e12bc9c62e47bf91a7bd4
BLAKE2b-256 4a44163be4c6ef71788f7d0c24fefc383fe0159b6765f469b790669cc68364af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2d043a5336de3cf4ff0cf12deb65270769d0ad6d707cb9f6e802842e224c58f0
MD5 d7482a26a4a65fe9953c52f41d2ee1ad
BLAKE2b-256 899b131298171a1deb8c47f169ccb7fb32d824824bbb139c84ca32d7b1983417

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 393b206224a3f0beb35917b6dec226b31c459f3f19aebf0fc5bb920b2439a5fb
MD5 23f45bd298c729cc74a7f21e990a21f4
BLAKE2b-256 3942e74399ff601510dad11f9cb9dc3a1034f3f308e0e1b7b1be1a5dc479e6be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10a20abe2ae05c957840cd2d3287c3a8bb65aa16e3d79afd5f1364833ab03676
MD5 a8b0c29d0b8eb46202e154eca9564032
BLAKE2b-256 324fcbba7157a43edeb041760371a70546fa5092df30c86d56f1bcf97562ec71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08af2348343857b1c6dfc8c8cde3f917c5e8d1090d46b43a809c783a38e921a5
MD5 69141ab44609fcdc3cd6aa83c16d12a3
BLAKE2b-256 a7d920414be9fd7915a9926d8365759e5115b35edbee3665d4b87ae1791444dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f58941ecdec8061f348c49ac30a506b94cfd0275b3439613449cf20a9dfe8dcd
MD5 d11eed2f7c7a2ccb25fb2e13eec4eb00
BLAKE2b-256 c8cf06a4ecd8c03bfa6e36e01d12c47df1882e23d80c3dd48053c2218257971c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8971819eef33a5204bb49d9c3164ebeca5d059d72821fb1b3b7b1d9dc005eb00
MD5 c3841b51532e1bdaf618aad61893861c
BLAKE2b-256 ebef7a863db91a9bfe3e26874f201963d80c41967ef75f557561d8b79ebec7c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.24-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.24-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cb69735f1365cb1c62d1c46f7f1f5ca6e41bedc74a4cb27e6751f15e4aa8f564
MD5 42065c726b68622d0f223b9f79018965
BLAKE2b-256 313babdcdde84bbe59af7d3f50509953fa3707e375dc0bef0c1696e705893fd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fad54a1e7a3441932f40edf26d3ae1bceffdb1c5f66e9b360731fafea2b02b9a
MD5 c34f6ad9e182622de7966d486f157ee7
BLAKE2b-256 609d79d20c9ae638dc01ebbd5db81a58aa386e846985d88cef8c9359f412935f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0e273fe3b51f62133f470bf0367f6fd34077703bbde11d894a1177c971d506ae
MD5 ed5d05cfce8ec3f758f7c37270b910e5
BLAKE2b-256 2bb8b400fb30923126677467839e7323ebee689606e5b3ab8b10cf5112bed1b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05121bfae6f300284868f5a0e1f857c473599388ba8c907881374926b8f0c861
MD5 c90b368d7e083070de5a63a0c66d00b9
BLAKE2b-256 0ff510db70efdf2225e6d2d681cb40fdbb86d9c9876f223ec86535d854273d82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d10aebaf57463307ecc472146b8ae71436e53aee2580d4bbf799afdf3ff3aff6
MD5 48f3186b2c75fcc2167faf82a30fa63c
BLAKE2b-256 1c8f1e676c140dc6e9e74c9cc72b148243d6ad61d42490155e927829b1ac4d7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4806aa937dcdd780ffdcdd38bdf9d9ff2ef10643722c3893cfba69bbf0eff330
MD5 7b433fb7f9fca78f5e8dd74767531d29
BLAKE2b-256 2317e300f3ddb6e8dd7430ffad03be9c44f9523a3f14735c2b3378afd67fb62c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1c3f3fa90185430c5ab4979b4ec1b8f4b244f5c66a4bd27b6430eee67cae51e3
MD5 75f6f0753fc84d32592fd5dfb5895a09
BLAKE2b-256 dfe67a79d11093f1f2d8c219894176422af8826eb101768a948a31baeefbe138

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.24-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.24-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ffd10ae1f186398d2a65217a186eff079aed2ef000db1729d90b86d0251d7ba
MD5 7a8c6d813a18026c4c30e7d5e3747718
BLAKE2b-256 21b1366ed76d82b24f023766aae03cca92778773271f03cccc9b1222e80d01a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e55afcc0ac81ca347f7cb38f0aacd9a6e5aeee062c90b5f0f0982cf64753cbff
MD5 9b9b799d99282d1bbffc583d5699959c
BLAKE2b-256 fdd7a0841c18c7a14be9d09b0d5cf91e5489d40f03fd981a5ddeefa188e316ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c5a31fef547e5ab624cfa8cd78e471833286c93d4269bfae614a5227f892e4bf
MD5 9918e315f85c0c0ce08627d57b1268f2
BLAKE2b-256 d82c5aab04363d32705dc7a27a193d0897ab4a5c080810893f3a09a12f49c159

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e194f116737eb47dde7d32e06939ba8ba196ecbe6d4e6c1c6de32309942956b2
MD5 80f32fe3d1492b300f35ee63b3bdbfb0
BLAKE2b-256 3189febbb1b7efb5bf892e8283de8e1ac4a3b41c0d626c618151de85321e0bf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.24-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4fba988644d9d9a4790ecbcfa7323a746dde122bde68832b4495118d687e67b9
MD5 a7deb85e6f8de97d6169b317ca4bb29d
BLAKE2b-256 604ce8070c6159fef8f46f8523366ee5269a60afa2b57f0182f7f84ecf3e6a47

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