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.20 0.19 0.17 0.18 0.27 0.27 0.29 0.39 0.38 0.40
50 Sequential GETs 8.12 6.53 6.17 9.19 11.16 11.84 15.51 26.97 19.03 20.58
50 Concurrent GETs 5.61 7.72 6.45 6.53 8.40 11.34 16.50 12.68 68.85 21.89

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 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.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.11.tar.gz (6.8 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.11-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

httpxr-0.30.11-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

httpxr-0.30.11-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.11-cp314-cp314-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

httpxr-0.30.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

httpxr-0.30.11-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.11-cp313-cp313-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

httpxr-0.30.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

httpxr-0.30.11-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.11-cp312-cp312-macosx_11_0_arm64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.11-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.11-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.11.tar.gz.

File metadata

  • Download URL: httpxr-0.30.11.tar.gz
  • Upload date:
  • Size: 6.8 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.11.tar.gz
Algorithm Hash digest
SHA256 4f63112acbfdae1c3b2df468e047eacf0a7802e0a391177c4066fbcf7f361876
MD5 489c942441b81c37531501a62d707abf
BLAKE2b-256 8bdb82fd90c80485b1358b6de9d4a96a31f34c93d78ef483e2e1317bce8404d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 232f6f5aabdf8c1823e754579f596c3bb7aefabed8ed533e25e232c975da5fbe
MD5 63d31b361318d1a51b807dcd05ed49aa
BLAKE2b-256 79b17dab44b1c8788a4e750f1988fea00ba4409f033a0805afc74adc6d2a44fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d4720584cad82b0ed4785c53bd14e316c45d9cc869cef76149105750ac94735f
MD5 9d7199d6cdfbb0d3b5762a4230f91c3e
BLAKE2b-256 97875cd4543556c7bc2b5586c068958902ed4d8d3e17aae90b913a702d881a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 776c0934782960db40f7d884a85c2b634a87681cccc0447f52ec0d48fa3b72d9
MD5 c4a14d3da925b8a60dbbfa8930f84e82
BLAKE2b-256 b9f9be0a9fc5dbef97d917598b320b756b535c1d4c68fa20912c08a5cb23c57f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ae663ed9012d93672e5320b3e596dcc612ec834c2532f986da1dd77b38aafddc
MD5 cbbdd8f89e69103a6d903a03869f971d
BLAKE2b-256 206bc8019a3bed1d4caa75dce1cc6632cac9426d44010f3b22be0f74cabead3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d2860000f1b71c7701e1204b667ef24d6361404e1d7ae8e0c31586868c9679cb
MD5 8572514a43cbd527046ca13f709150e5
BLAKE2b-256 4516973ce17494ce93c8bba333563e8b002b946b4891cca88b38d2048dd4d603

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0237aa4aeae97cbfc9143e904b07fff96c576cce61e4516ba17b6044b0f710bc
MD5 e11e635b7cc6ac0420ab64203ed578db
BLAKE2b-256 9f3f4dd1d4527294c885c1123cb0d9fdee57ed9ab726f403094b2c4acd0829c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.11-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.11-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 106eb3e75b6439dee7e0e009d7c325e33d3fe69c6bcdf36a146423fa117c6a99
MD5 f9ff8f9c1bcc1d53a146e8b653826058
BLAKE2b-256 1890ae1c281f419b9c8f9a62b95d55971536e0cec5da32c64e91dbf3a5b57d74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e6781adc55f39c3499cb0bd41d188ef01c7fa61cb19ca562808435f0f8e5c00
MD5 3ab7f36bc98cd355367c030006da54d9
BLAKE2b-256 e2d1b892c39c5a6d896de6270d12094584bfd3e268cb78bcb4fc2807d8211d7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 358af41be90b5c8698a2e2bb051cbb0d27cca79c46909cfb677d246739eaee14
MD5 18c5bb2b9a06575eb3d7f957b533ff51
BLAKE2b-256 66fc9936f690aee9902e3b3bc2ed6fbbdb9360f526e83f2188b7a24aea0a17a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 553a15a813f9809cfcffc51da23a3f9561de5120a51e821b89805f716de7659f
MD5 6fe28022de07ec317b7f250b96613d91
BLAKE2b-256 6423f761c369da8870a76f3d3398fcfabe2753d6353f7fad2194e18b6b1a30f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f4a1a48f26f87b4e9411a834ac208be091d07b726d717d840c2f0ee24b932bfe
MD5 803041ec5b5a2a5c6444db6c754969d6
BLAKE2b-256 a2a2f4346998944c4127120ea14038fb06eadb7afaf142d2c8caa1ad4e7607c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3dee6187e5877136b11e847f38a5289c96c4d582764f69441d7fb4163077dbc
MD5 b7bd84c4c4a11e4d147539c1f6a23f87
BLAKE2b-256 2b730496b84703e2175104d1ba030b1a27e45936601b6e15f3e465c52bb4b967

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 da06dc41d518c11d80783a3779f12d043888bb0ac16884b7cd27c9d02b6d0f13
MD5 6e8f5be1e57025d8477b52542cb7fdb4
BLAKE2b-256 bba7def6573e9ed546b0c68f5f3ba6051e4262b429ceb346eea00ec891211e53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9cee19c5a36a66c98ed7446aa9866a4eb0ceb31c9047f94aa1ee6a68a61e8438
MD5 53c8aa10fa9ca28cbd30e7a99ebf4455
BLAKE2b-256 244b982d1aacc80d7cb6eb366ed159b3461a307b04a8e645fa33f76c5a2cbe53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bd15a1982946f9abffa825bce1eb84a50ec317fac5cdbf764d8348712e445e99
MD5 285804e00c675cf5c0fac08b983f12ca
BLAKE2b-256 d4515e89b49ca2a6a484339894e1354ba604a28a9d964a0d9e57e8f4a2faf887

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.11-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.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c10e095a120a787a49c437208661ec2e4fe1bb757219b30fe04e842dce9f8ab
MD5 7a15d06c90621995f051304f54d05ce8
BLAKE2b-256 9ef35ec73e6bf9d6b4df2e107e74cb81602f3bf32d2337aba0a7a078b2964b4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 998f668964dce904459bb49c1dc61822d7a78b68af87b431954a988ef9fb7651
MD5 0f7ce090aa84417b2f6ec0bf1e8a9e68
BLAKE2b-256 dc5981576333545c639b545ce4cd42bdf0a33f4426b4e6193aa6dbf7ad7a32a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 70b6fb52f2a6ca67786fdeef1b8dd6ccf5b771156b430b76536cc56752aea058
MD5 5a9050001b6b20e2f279e55f93600d39
BLAKE2b-256 a461cebed073648d9f8aa771be189442f3a56e6f240e46e1fff4f9bda0ea46ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 166c29a381886da0449523ac5737a31ee5040d8dd4d2114acda8b4011b6515f4
MD5 8a612464c58b3c2d4a748a895123a037
BLAKE2b-256 b25ecc9d2e3507ee9ec99469dd4b22f6b7e68bed58ac4f1c2fd52ba2368cf810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7732b9c99a0faea083c1083213d2c08585babfd3462b687fe36ab089f843285b
MD5 67b3e9afea6d8bee3b1ec72e8f07e9aa
BLAKE2b-256 4b5d0e0784173951f3795c0d14a93462a31eb58ac7ab520f634754983da6d538

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a889a26869ea78e66927251d6f7a077d14773c8981f34fdee7e30a1e8d9841f
MD5 ef0b1f04581440ab0b3f42ecc383e60e
BLAKE2b-256 bb360313f3b356afff425584b3c9ed37d3a08b88ef0505f6d531412b561c5bf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b0d9200f4c1e35783242be7f88c2d48d834df247732a24aa1b0e9e3ce289db14
MD5 c6667d72eb165d6f3daa0bce755e0650
BLAKE2b-256 273253e7799674aed3f0bb3e35b174d20dd7970db040c9b0312370b155194d20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.11-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.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e4374dae28063027dd666d3ebf742aed36c3ccb683d989108385b6d85e0ca12f
MD5 71547be8205d7ec53beeb4c10841b515
BLAKE2b-256 7883c68f5e23b41700aabf8e4df8401370395b3014b1794a5aab50704afbf524

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e0f7147bfaafcd22f978f9f52919d224ff6ff424e294c4677b01b23a232569b2
MD5 8a3f654ea784c8cfe81e6a79facab12d
BLAKE2b-256 552aab6c4b8c75075dc9a8c3e90affd5a98349d3330eff8d1d4dd581b2b317e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a3037e0c2ea44ddcc69b1d2059207802f16c32606f3279085e88cacf3eca7a5a
MD5 9e1649d4cc359f08212cb66fada21b80
BLAKE2b-256 52d100444337c9400bfe04451e767a43e4d3fb59362e401580eaf6e80ee6ef60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53e2f5971c30725d34a4ff006a83745496bc0b72fd0f4b1bb68d04f522563c5d
MD5 fbc44901898dc2eb7a7d5e18c7526248
BLAKE2b-256 775a7c5be3e07568a80f051ab8261922ca6db0a347c2ed67f4af8e2d65398e23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 da7acd85722f9b768755c56017d1c86e8122529ea50463242f5c2772cf7f7a0d
MD5 a07f8ab8f28da41aff305dec86b894f1
BLAKE2b-256 488cdfc00312deeb8ae1c2d49dfc25333eaabf26ccdd30da60602a8d35820cb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3adf1a59665ce09ca9697033309ceda5d610c0387e54c51d83f525405ffdc7e
MD5 5edc608d9207c12c2e10894db5cd1c58
BLAKE2b-256 3506c5bd6b826660861e91fd2d84060747d19e665685c8001335a19fc63d55f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a54f40f4d7520f5437840f6704cdfc5018b1283b3c5dca33e66217ed52f85213
MD5 f93bd976080a41fd43289bb59c938f33
BLAKE2b-256 41ac47bcc172ece1ca0340851ce3dd14e5168b3473a960d4f2ea0bc58e5b13d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.11-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.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7ca2bd679c49b5edb7d88820cbde235f5435e58401dac4c32c15a0a50ad4b858
MD5 df7122b018f57b0539030e749da20ceb
BLAKE2b-256 e31a457f421708f0fc17e398a0fdd2a0a6e54aa67041802b3a5054a2691b764e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a017223ba6cd55f323673d76be8e14a9cd94604b5f71e8442403eb6d21b2c4e0
MD5 a172ebafd925f7bca854db42886b86bf
BLAKE2b-256 1a65d5d690f071bf0438f306d0a421feafdcd792f0f8118440bdee0524fac925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9761e5739e7810d590c36acb2a52850852d8e048e0db7d8851a3eabaedf496a2
MD5 fc234fbf3f41d11c322e14e30075f2fa
BLAKE2b-256 22ed7e57201634541204b450bd8eb5e5b4ebc07c1e8c4cb8739b60608a8548c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6da41540a78cacd1c3f9acaacdaceea257753fb3717642ae23b3dc7bedd4713c
MD5 2bf810a0950d24cc770aaa15cedd7ccd
BLAKE2b-256 619fd4b4992f3cd3298bd06054e0656e252e2f29dcf8c2e292a170298ce069f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 076600da609daa74930b0fa59e22c6a1fd697d7e4e9dd99a2585755bfe5f7415
MD5 ff0175f065b13f3761174b21a5913327
BLAKE2b-256 9c10366b88fee437701e0dd97836200f2ee1b84668afad1469006c7de175e679

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04e370a4f3080651d7d21df536fdf46a36330282a4e3591f28f7740d5db62a59
MD5 3a86cf46074db1196e7da3325f9691dc
BLAKE2b-256 98254e66370a225ec251985561c117175ac982cc254d1a83dfb4c02694013ca9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e23d3bbb8f11af2393778092d2633945bcf401e53cbe3f79b2b5410369f97f66
MD5 c3db71238d1d4caa7469ed8680e4f764
BLAKE2b-256 ecd68f9c24874b330c20cf492f7f9dcd7528a4a80113b87f886d0454a031acf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.11-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.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 175ed1977957b39579b8a9212a1221ad78ac40d04799dea70fa4414842ef9d92
MD5 5280f346dfa1d6e8650a09a39d850bc1
BLAKE2b-256 62f92069dce8f3eeb253713fcbc564ab3658ce9cd373c183152d7264a09c84b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 008fac089fdd0f7235a74f666a5bfc048baf92e31438e54ade8e0e4c86f64482
MD5 19f935b0f52d0dc89d19f71b4324e838
BLAKE2b-256 58b7f2466c1fb1874eed2e3a2cc42a0dbf75062aefb648d1663ef64b6087beb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b199f8a794b76e53964a14d47867bfa76be65a45346895dbcef3e478312be084
MD5 c383fe27f8f8286c7ca8c11467104709
BLAKE2b-256 26078bbff161078af7d9f330d13ec4c2b5d9932138c7de6a7f32f97ee7344334

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 685e4554c4630c3f44d2b2d2d7065d63bfe474abfcf11ee563ca42f941ed579c
MD5 dc61259ab216a2c7e68b1d98c15d7020
BLAKE2b-256 201af5e61cfe5198c0639c766f9b54af7fb88aa764ce282b7fab6e02d67da44d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8e9539247f0e1c03bb516556ab5133f39902b96f13085bd854b7003db3ef52de
MD5 19e8fbb806fd95106e3f3a9fa1d3ebb0
BLAKE2b-256 f6b9903a608d8de238002f81295658d2ef96743bb8dd89ab5ee57bb011f1c90f

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