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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.17-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.17-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.17.tar.gz.

File metadata

  • Download URL: httpxr-0.30.17.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.17.tar.gz
Algorithm Hash digest
SHA256 18bb3273fa4a0e8dc335590fb73ad93527be8cffcf6094b76cef1aa9558ff8ea
MD5 dc0bb84b03824c151dc3cfca8e09ad1d
BLAKE2b-256 6bf2afeb00ef2cb408e8f3c9e600ee5889124d3016f16cde93f91187073d4301

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b8059fdf07260e2a4b141d30afedd9431011b0ef104bcc19529c513bc6c9cb8
MD5 9d7d21c7dd00b50c593af555d2ee610d
BLAKE2b-256 fb9e983afda447561ef9ba21cb51e0fd67b8f87a20a8cc6fc12bc71539ba2822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f95f62dfd60bbe35c66d2aa117bbc9b65e86a40334fcc598ca48920b163030c1
MD5 4dcc9e3b39f1380e1e2dc40a043eb995
BLAKE2b-256 6b663af1300b7d1aa2129d7a328ab07ca53bb8161f4fe1fbda33b39e6694c794

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 507803694819aec2326f671ba5a06489c2e64e72cea31a736be928bcd942fcee
MD5 18420766ddd05493e7907a02e30eee10
BLAKE2b-256 91545ed8076698824535e16922606890a3364e4a5b4d700b6aab83eae4206232

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9858e6845fdf1a8bf21f52112927a09e48e4c4241a9f829a27f7af6532ad48f9
MD5 03b4a9053b1c46a40287baaf55c7c5d4
BLAKE2b-256 d2d15805b9bde462b8491871ff05dc5213c478a80d18f210d1cbe9802c3a968f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8bcb62e11a8d7891081e12de59f8954016af06e4907d77e5067c436e67a50095
MD5 57e3113fc4efb41a254ab4d7f5d92216
BLAKE2b-256 32f46b249b57cd92c45664a55e9e054b7d5a2b26e5035b2db0ed4c8c1b7db376

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6d60bcd75f506bf53a9d77123b9d0758f254ad36d4f1459253a200260671dfa9
MD5 8e58eaab6b0c3f4cb2420251cf198297
BLAKE2b-256 8b2a8d200369496c1d18e29f74327bf7c6f3ab03e331f1cc93b15f7bfd5fb8f5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.17-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.17-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cca5249bb99322515ef3bb3428a7b50d26a3f92bb4b2e79f0f5c3c132944804b
MD5 b31726411b0d73e27618aae5f36644a1
BLAKE2b-256 9aec8c73118115a0eada25ffcac728898921e4cf80ff1168fe19dea0f88ff4f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a9f057af0246dcfef6f5bd20f75741f323b81afbfc0ac6f6e6da8f3d99ba76e
MD5 6f41cb2c9349812a7adc325dfc802b3e
BLAKE2b-256 7ccb5ca1c8b79b3e93a176f699ac2c2a5a473c9368cfb2291ca4d50e29d59a83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 977d66c73a8bcdc2aae81ab52d33f86f65da5a0cb63eb402d9ccd8ec05a4c1fa
MD5 06e51ef204dc60adf9ea5570f2f1d902
BLAKE2b-256 5108fbacc87a149964558faf09e074506d554767cb6b060ea1302fac65c23d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01667cf36df1073bba9b8d006bceb2bb493d290e1eb3e570cb631276f6432b35
MD5 e2887f4a7f6cac51ab483ec6ce9c7b8e
BLAKE2b-256 253dd8b6dd70b3fdfd59394f397b33d54f0a170d60813a26ba9fa15231b7b157

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b060bedb43ac37a2e2f680dad9539e64686d0844f7d30c80ff7abbfc1a73593e
MD5 d922a2b0baf4b4ac88684ce6ae2c7ffa
BLAKE2b-256 eb6a0359365b75d2daf82dca48d4de969fc3bf7b94f38c257b86195240f796e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d677c81a40e85641e0041da4feff53b63e609e274b5d362665df8b0fd3861821
MD5 0c39137ae2e6185a4c14778c1a258b16
BLAKE2b-256 79164ac0b7a7a5ea3109ff11e601251a707d98ee14d7a3b482f91290a072a4d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cf45288c6c8a470aa47ab9faab393b18131a34479303d6e1bb3f17071509f488
MD5 bc9ec62c6f16b9fa9249575a1b86d149
BLAKE2b-256 a977f1c08cccc8481d7e3bd2e0c104e7fbf10f71a9b0bc945729c8796c8e67a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 423b1da948a25f748f06c020210daf27bb57b299cfda6e1ffc1753c412156abd
MD5 2bdcdae6bb73b27d300af997f367e0a5
BLAKE2b-256 88845429a6a2b2fcd1eaa8381aed262d283b08c07c9c3333b514397369ff4d3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 64db5834ed39f360f02a029b36fa8b6ec4a2ca0c2414bc1f147a1bb30e0a4433
MD5 8a636518035a3bf4550515199803a984
BLAKE2b-256 ba80f600844865662eb620ea987b2e79f87c7ac36e1d093b9df562257aa3dd30

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.17-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.17-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8ad6cd99e393b22529d6d44be49f4157ea28dccae82ee970103dcb05b2232717
MD5 51cbd845acf887b23eaee60b50109500
BLAKE2b-256 0bfc47a74f150bae339fcea36859c3efde7601360843724799aac74db522b5ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75a2c34fe5f8162fbd0744ab984e6ca2f522bd7e0e9d8ae6730e85a2a0424058
MD5 862c06880738cde8c5ddbb282fdcc093
BLAKE2b-256 1967b0b8a6f7b09841ff9e64e73ec124ec61a9eebd46fb32b7660502f2b67611

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4f3db0633b8086236edbaf339a3b2af4b04a4cd03f8b6a1fc35ca47b4d6c00f3
MD5 1cb4e7ef31d7ce6f61007bd23db4cd5d
BLAKE2b-256 be73fddf06f9b510898796a3ec31d1e8c663c822c19363d8a0f4133330373416

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a93b52fe43f77cbdacb8e1919285abc3e4288d85a748c3a1235b26c180e3bd7
MD5 5cf64b623a385fdaa4b051fa8ceaeeec
BLAKE2b-256 3cef80c4acf0ed6e5f54327a7038ed9dcb8cf7bc09026bd7eae9c62de5d98299

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 467a810e8734caf4ff5e4d174263ea4dc4c63e38ef8caad92d598667f0b414c0
MD5 25bb90c2d68d0ce2f79881ec6ce4e69b
BLAKE2b-256 18c37f0729a36ca993713b839ce729a52d84784b8889cdac3682c8324e80d91d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aac2b78b2ff3837390b28cf3e51e857e20b7c00a651f7260fe5d40893722470a
MD5 ff9eaf39421e6a6130f48cd423a25d43
BLAKE2b-256 4bda36be87a694592b5bdae877d963e75d99d62f87e6e529d79e9516c3d7ec10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4bcfc2d2c0adc67d99f3f4fe5d144e7eb9de8c2b188415c4619460e06364d82f
MD5 8c9c4c2e7dda7ce3406bf33ad27e0823
BLAKE2b-256 020093eaed2af63e3d2103cd6b6eefcdc3ee22502c7d887d6a3bccf378200f20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.17-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.17-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8bbb69891bb9e6288173804547561ed4fb6230f4a07a7b279ee5dba93e0d8d0d
MD5 aa40bf7544440b1b18e5aeb27f485c64
BLAKE2b-256 5b36015a10cd7b0b368c553ebead56d91a25afb5e7aa4693bc216e7fcde23d9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 663c2f6c0ba3dc3d8a3b953320c7767c8c4e758d63dc2cf40ba4d5124b4dc3b8
MD5 0fc1f7ef3efa59d914f094ba608baa86
BLAKE2b-256 d0862600b8a9e5812ec971e24286e61d5cc3cbda5d90e016e0438238ee05fde2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aa64f7e78e6b850b8ff00f3011b5f26511ca62782da7b2499b82b47fd6a4db11
MD5 618d5c441054e140cace02286f05e7f9
BLAKE2b-256 5a45e5aca5202d341dc9682ebf66cdde850e1155b2049f39b4b7f86340f60add

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e9dc3b5047a2f22ef9661cec661507504244cdf025178a367fa07ed4401f7a6
MD5 f1d8c7868183ccadee300d7e2bee3e74
BLAKE2b-256 3616ee609996a732ef8a5bf3bf14646b65fb137bb1d4710a7be2faa0a104ab70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 79b3b507b3bc9743feed448bc86e7309f9316901af1d818e2bf2e50770798996
MD5 54d4762a775e46d277589d0fbf8eb6ab
BLAKE2b-256 72bb20e28a2c21739201e74e9605e35ee87b02c5bd471ceebd497d24bd14c34c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bbbc44553353a4b74600323137d8a8a874d98e9fae5d4ffaa3f82ebb64020f1
MD5 22eb0b902e9e693d53876f68387af347
BLAKE2b-256 2a49f53e672de9ce7be1da4a4360aa1e676b3009d7cdd3e06398dd1f0b6a5f65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3409ed3b8d650cb1eecf6ca32db8864e0983826260345e66e4cedbc422fb88a9
MD5 ce747084e0d2097b6978113ea2e55f10
BLAKE2b-256 bdbed2f5da9a4532fca5aa35ff5df1930b4d154c242c65124db4183e1d031990

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.17-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.17-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3f5df8b46e7cd5386670886ef20012049716d9a17e5094e6047aa7d4ecd59a6c
MD5 d8f1997177a84786ef9277dea24bf2e2
BLAKE2b-256 27b15f67b54dca9f556671e4d74a732250ae92822c4be69048373eaf7ac069b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a104b64f69af57ab5720691a5992fdbfa33e1681f26ef5d230a8feb64b6b970c
MD5 636532605c36d73604f17db5762f5cb3
BLAKE2b-256 64a4b3d1e59042d90612fea0730160ab9001041f419ea5d498d500299acac653

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 66c55409aaf9f57215b807bb0f0a96c5a7f00b6972d3a546455d36a3d329a707
MD5 6b9268eaafccfc92d4be231dcfada594
BLAKE2b-256 1bc1f4083c53cb613e675c52bffb60ae7a8b181ee9e5ec66617c399006595422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 766314c7e585648620109a79107ae32122f1a329cdf7e198f2daa1dc37ad654f
MD5 b2252b658ea309e44e11583d535211a6
BLAKE2b-256 9b671fce15dd9ad6d4f7fc6c66528663ca66f590f0bd32ec38adac4fcf76d45e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 02ea49f701dbb7877c3cd752698d4d6e232537389f4190cb5951ab5303de4568
MD5 1c89253990c916b7fe6db46e2d65ab84
BLAKE2b-256 ed4dc521df6b080a0e6d3c1cc68ab5b724efe26ef75ce8b4670f8d0a90cd4c9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 96dab6a90f62c78bc05bb122bb30b839f16c5fb58544fc433b2acdf9ead21dc0
MD5 7b7b8abc282ea65ee8f5848092caf2ab
BLAKE2b-256 b01f0d8d050f5de1e83653b09ea1aa6d4afaf048acedfa2a8f791bbb166dd728

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 837c2be6d322900b2333e1e296ccadac697335a7b153420e379197a9a92de62d
MD5 80d62493a20bfdd766ccde56f8d86c38
BLAKE2b-256 379b7bf6e8650f2262fabb06679afff15c64d96a9b6a835c1ae4679877f86966

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.17-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.17-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f62ac2257489120945cad78f3bfb1eec5cec2c5878c159fb43212cab8d454b50
MD5 d5c466459e46cc5b303f6e8d9e559ac7
BLAKE2b-256 798842a78c34e10690107c40872be09e794d60a6b508e01d5973032166efb5ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 166e3f79d4cea7668ee1f20b8759dad7326267e8d1fc66814d8ae46fd5e3eedd
MD5 bba266ff9e6a0deda9d1d43e052fce2c
BLAKE2b-256 e45675c94ad4929866744f45f108e80b8d4e79498b6b0ba2d61c8ccdc93ff00a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b830174b050929e48eba9071a3cc85dd87a2664503c52b732dc8a9585a63a826
MD5 55a51345a6b63e31ff5061f1fe042848
BLAKE2b-256 1afdc4197d0a275d3890b8d74f5ddb23d190c7477219d08745db52b4fb4c358c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c44491ec85893d55dddef1a21b6655ae898b96a63815473765acc7f0a4d3ec4
MD5 7142bc85d545a9f56d12cd27e47560aa
BLAKE2b-256 b11e87620e71e719c969613c4ee912d28dd06551f9a471197e96462b512db4b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.17-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d18823b1c5849bc01f175ae3f9b69ca467be644c72339c09af26c7a81a49822e
MD5 fb04dd6224ba9ffd53bfa65bc9c88980
BLAKE2b-256 5e87d6e8ee1fb1f2c4387932203224d3f667cc6fe968c0b30ea913bffc1dc878

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