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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.15-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.15-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.15.tar.gz.

File metadata

  • Download URL: httpxr-0.30.15.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.15.tar.gz
Algorithm Hash digest
SHA256 37f2835b9fef2f46cf3da3bd77390a67e946300261dc7a6686d8c2a0acffee67
MD5 5da1bb7d99bde5e42823bc1b31c7d500
BLAKE2b-256 d03667480123b4837fd21df79e0ad5d674c992f360080357e33a4fb2f37cf63f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d09f78f993cfa9fb71265439655182d15aacec837c94cbf74038d379ff004380
MD5 14dbdc1107d23c3d06c9f937daff8a57
BLAKE2b-256 7a080c471634aefa62030ed1ef204a139205e56ea11358682fc820c4c824d4fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1e5faa199e3ee0622c3ff5e09eafbe84b53c5f62e31f910fcbb37251bfbf5019
MD5 91cebef69e0474dde8b6e5d437045d33
BLAKE2b-256 0cac46e1780ad109074f3e7e1b79028a43d1479b9bc6b1c77fd0787375e5105e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a16e83971dec1de4c29b044dce32ce4ea80a24d625fbd8885d69a9ab19fa990f
MD5 620bcd45093822aaeca5aa56fb576eec
BLAKE2b-256 56842aa53017b4270cf6a1548c8b81ff21803660a9075903c5fcdbf192ce4b98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff070f660ea526f9ac54f4baaf04fee73a2d1887ea7a9394a791e9fd1ee225a8
MD5 04bab8f54c6bd6186a02099553e860e3
BLAKE2b-256 16bf483f6ba949dbd0eb771ce4ca098391d95ae130ff522fc40f066eb920d340

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed38e1d88aef06279fa53f7da15886855ce11404cab47454130ee9046061d848
MD5 2782e0dac09e5e50f234c971aaeb4715
BLAKE2b-256 945e54ff88bb9ba89488e6bb19bbdeb72044741a1402f08dc97e8573f4957de0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 81aa1857951e34ce325ab1e5fa5ec5b76019278a53d51d82abcdcd3882cc75f4
MD5 39f372d2b3dc020f2d9e6a805111e7ed
BLAKE2b-256 ff30fc046e9fc6f6ce437b85ec57cfb7478091ab6a2bf6284f12c96ae79ebe33

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.15-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.15-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 007aa4093257ad8a3c8e5b3ae553e8e48338273b6a4b5e4c3f348390c052a87d
MD5 0c3969b8f677dbc533edae2d6cecbeb9
BLAKE2b-256 0ac61a5d5cc1eec6e274b49cdc9b8dcaf2dfffe4fcce8c30e9f13accf3872d70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 688e98ac3fb21a8bda36ebb5ed52ab49c5afa52f4d10a5e9466ee0d41d6717fa
MD5 9c02ef804bf54b9eb9ef3a83e8d340bf
BLAKE2b-256 5c2a13c57ec34a14d909a8870214e048c1d3a2f43a33498e6aa87e4b9e219aa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 67792e25d566a915d3f3d0afec7d99f72c1697b8b9848cdd17bd9e3b706027f7
MD5 c07517cc40b3f5ffabf1b3f9b9d12481
BLAKE2b-256 495d2f1fe51a929e5c1bc5815c164350159e4fde3ef28770ed2ecf0c4f68b265

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e205b26b15acf2853b88425dbed1cf694861c9273b12c068fdd118e529ca825
MD5 ea6c28ddcd3321d70dad6b756c576298
BLAKE2b-256 cb3892d536c922e9215af711fdb1f5afac04f22baf3b4ea74bb3fa3b384d969b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d40587dc110fad8b636b2acb01b69a0ca4e678670e838cb37b4f5ac5c353a44
MD5 76a139f56fc3c0f6c24580b625693933
BLAKE2b-256 b7de2493b87f38a7dbd37dfaef078e81b7d411c6fd6ca12d37d8bcb1917068cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9b6312ae42edaf8fae90a688b95dcbddeaccb2a2ba51fd29ea403e5a63cf493
MD5 1b6edfe960d29407249e485e18eedade
BLAKE2b-256 fb2662225318950bd11bea6ac6c81a2fbaabc9d680a61f04df763cbc968212cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4b7014a7f4fac7ad33d47cccbb60f238a5bb3068df8836a65d4e0af205de494e
MD5 9683d9ce4121df55302d9a59ec7f983d
BLAKE2b-256 d4ce7ffd9fc944eedd4b1f6f7ffcb20dc5a5d6cf0fdbafcc5bb02a2ef0824482

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6c86189d2d370da6ed36694d71e292e8f843d94e181baff05d4d939326f817d2
MD5 0532f4e73e861e7f41c879f037335b51
BLAKE2b-256 631a79a72b3134bb1d75b4d2da0a9269e6423c7af137a1bacf8d309c5251fc60

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 57b88ed01e233756bc773eba0e14faeae96701462d94a0edb1b1f279b6959a44
MD5 d9a5e12bfac340b32ba0f68038f2bc83
BLAKE2b-256 71653d35812c0f6b92115265e082d72f4640faa0ab5415580e491ed6d3394057

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.15-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.15-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d93dea45a6e016b20c9e63e0eb5f8b9375437fd659f1a53501e9bfe4c46b9040
MD5 a33e72eeb80ea107a9a4940cc0bab337
BLAKE2b-256 a0d385995a3a9d9fb7cbbac3ee0c6824d7706309400586210bf1501571d3f278

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6fd61df5a9ade6cbaa838b555f69f05a0dba85b310d5ef4108845b029b7f1d75
MD5 b363b1e9567ae4f9e03c9ccb97613b6f
BLAKE2b-256 c87f508c2c29e77b24bfce00cb3e80848a1397c962a379643a5a073cabd0f090

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2e9d2cd9b9aa38bec05bfee5452331b4989499c256d1d4a67198db6ffc2b1399
MD5 ae5f3398803b2ed97c6f7c216acc6f56
BLAKE2b-256 2245f163edab5c5660bb8ccc62371763151c60a8f2aa230016ed32d5055a04e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffe0532b9b1d5fe1cc94e176e9e0c3b99e5f3089a9d9be3baab41d3833832eb1
MD5 84e7a65dd48f2809fc6eedd94b7ba9c5
BLAKE2b-256 d18012a7a924fd469b28e624bee12b285493119e0870a1d29490181723ce90b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f9fd5c450c018f22177b628f386b9277f0c30bbf909ce1bcc89272f0fce559d7
MD5 aeaa5814f061062a14a97979a17bdc8c
BLAKE2b-256 ea09ef36fe218e3fa8946b8c79855f86ecc75e91b539d62d001e11b65a9c64be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ee66e31a629f78414c69816a190478091e5ac8a4daff08d2fac1a13c3daa0d5
MD5 6acf3868159af73a5249f2dbc2df7715
BLAKE2b-256 abc8f69ee53b7e30c27dd78991a1e0e0ee77690856b92ccc609895de8558bc93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fc628ff704d57f711e29f8f0861bf0b502ff573e65fce8dc6ad68883fb8eb8ea
MD5 d5f0de1f4dccabf935e2ff7655276605
BLAKE2b-256 e81751c8f0a2da39e9f0c0e414862e352d5bf516a5f1d3b6206351984e5410e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.15-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.15-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 832bf143cfadd8f54d124e26a43a20cdff5bef1bc4f7d2d80962b3ebf0d5a3a1
MD5 7242d93c6bacd6f4b5bc983a9e48834e
BLAKE2b-256 f5d5006048a9214d16b64fa376edc83cfc0baa8d4ea380cae7ab478ece62e288

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2d6d000eb91f36a1de3acb41b33551c9f465785acf12ee2e5c9290c148d239e4
MD5 630cbf245ad7debf68bef854db9fbf55
BLAKE2b-256 9d5e04683bca40ad1e245fea487ce34b61b16482b26376f9ce58b28798e343e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cf64b6bc4557688d9d1cc633178cce2e9c49aded4dc6257bc549904b2def00af
MD5 5914be8fc20545a0aabf219bd1498db9
BLAKE2b-256 8253dcbcc38cb94334d76f923165e2ce3ed8046cb73367e466a60d32b36d479d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 829b41339d1cbc536c7f139a1ada82576ed357c34dfebf028ed4d95ec2e72754
MD5 bff3edf162f98f796c02b81d7ca381ab
BLAKE2b-256 27a90b3e913a680c45ce4bf792bec8c31139a8bfe5f140f78cf8bcb44da4607d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a12bb1782a9cb5299d4bbfd07e7773b44371f8f347641e14e45739f72e2ff496
MD5 59cd64200f5f8b6b03b4341476d8f13f
BLAKE2b-256 cdd833bfd3b4bec7da9b4c5c2867201021dcf2ccc8429fab1936da0dd3233f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a75aacc21a0bca78743f5b6aca29856d6e540b62c5a678f8cc9f80532b152cbc
MD5 981042fc14233c1b46867ef729ee17de
BLAKE2b-256 72c62dc8fa312a0f9abcaf57fa85276e66cda86b2541ee7d52496d5069983683

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 37b753557ee33c72fbd5e4f5fae7af7cab5615ae73df3ca59c85349e6171366a
MD5 33bb17e3b9da0111e60ca932c346d65e
BLAKE2b-256 e8428dff6f912c38bdd4c59d68303eaad4d61f79cda10493219a2d09e4c9e177

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.15-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.15-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6ac92be15f1fe26dafb0cc9be0db054f6f14997093a1e81dff056a9678d7e8b2
MD5 5f0dbdce336df95cc11a526afcb419a4
BLAKE2b-256 2065ca257b713d2d89116f32516b1bd657c7ec3c82186aeb7007225ae29420e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fed21ecb9eaa7c9095c2a7e9c5117ab24566e143364d2f8132ac1aa33c0ba2a3
MD5 123b2bf5f7b8a8d33b7406100d3d4c92
BLAKE2b-256 6b571a417a26965c7383bed857eba774093071a94e4a61a1262b0c4e050505c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9cd0f9601100879802c3c26df4d09cda15e6ac3a3bfc768b03fe9afab9532253
MD5 6a8fc598528d0999c7b188d7a5b281d3
BLAKE2b-256 7655e7ba081163525eef257d829b638a17ac5841d6efd0ed07004240a7d29abb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67325ed478e26afd2c91d36f15894afb6f992007062dfc7c02404849032233f2
MD5 7103c778650420901dc8c7938ed7b6de
BLAKE2b-256 b7bb35e00e2e8fe56b3961a412f07462b07c5d23a3f62fd110679dcc243ca185

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 581a592d5104d42b3e4f98898ca5889ed870675fc228532ddf8ac143a3b9c8aa
MD5 ab2a172368f5898a542766aa891155e8
BLAKE2b-256 82958e1204ceab93d860e834b7f22ce5b572253a12557095cdb7afc021df3d18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89fce659013bc9c833b1e9a0c8c0de78d2548efe64e9922aca778b31e40180c3
MD5 0389cd90e1222842c0a014b42191be30
BLAKE2b-256 d857722225262945670a120899ff5f04f24c336bf750febddc52a871dc4e4505

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1c9680e4cb610a5ee3dd3707ca30385da11bb94f55b554122e4a47ad56defb39
MD5 d773b32bbdca34dbf2143b7e50534ed9
BLAKE2b-256 2797452efee600d71f9b8f0c28439496fac61db24fd425b42691b6e4efad3c87

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.15-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.15-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fe0f58798f0e281defb3473b0363d18df633db01ca47795d56e4903474742ad2
MD5 0a5a08b334aa75396dbaa7d7a25e8a52
BLAKE2b-256 da3217ebd92ea38792258de455ab08b2f2f28db05291c4fac2d0f7cb1b78ddc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 75fe9fb535052524ee260d94e72456c2ad51b8eda064c0bad2474bc615c90cb6
MD5 4ff9fa34dcd847f3d93bd3dec80915f1
BLAKE2b-256 e7032ea2642f43fa0e4db0630f1a251b06a097d2acedf8469614664a4e7f5c9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d4eba31dc6a0d095420feae5f51d0fcaa7a97ab045be1f6bed7b3975c97ce6f1
MD5 170e35ba4a516912647fd9b41738b67a
BLAKE2b-256 cea9ff4393e4709949c6141e443252b825b159f4306b0db349ce8909fefff353

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 91b1076f63dcda9276c57056d351e4a540af3bffa5ecda1a876159c70acf7504
MD5 1d43af0b8256e75fddbb31fc61468a1a
BLAKE2b-256 e3256b79a787e0ebaf99f310499d93af30c480d9db27aec1b84cbaac8b129044

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.15-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3b827294667d8d8a14a305d8f9e6a15518e0479c878fe7b0e04ce7ef3b73f26b
MD5 51f007b643542ae5c898472769272cec
BLAKE2b-256 2606b0c451fc108022fc447996d129971e3532797ae4b72eafe0e46e6ffeb7a7

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