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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.18-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.18-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.18.tar.gz.

File metadata

  • Download URL: httpxr-0.30.18.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.18.tar.gz
Algorithm Hash digest
SHA256 acb915a61c0bb9ca2c8d3b3f93792c7142546549e913bf67e1248b8e4de75b2c
MD5 87206481ee599a98353c006c85274206
BLAKE2b-256 2ef4ac18c45ea4d4ba4bd13cd3c9710492154e3db420b160effa8033af745fdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cdd7931f1cc5bcc8f6821a2aa6e834faaf21888acb00667174f2e4e2009eee14
MD5 2e09f00ab761a842f03c449e2a019844
BLAKE2b-256 27dd3f2454ef2f3315dcfb393224ccc7d11945ae1fbfb01cf01a571d14ec24bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bdccf63b612a3992e6c6ddb040872a979e65ba0fd22a63557bb64d25c7b630e9
MD5 6b470d323b4ef2fb7142f2d2821b9c4e
BLAKE2b-256 c32d19f6f8e9343eac6dba752bb7aa2b62bd2cf7ae222bc7ad3fb74cd76d1e78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0bb9bdbbdf7bd35e366bf37d129921b85dff2b76a355764798e8b9c93ca09cef
MD5 049857f85d7250f5ba9ae80721a5dc92
BLAKE2b-256 7a357f32e2c80f68338150cc3003ff850ec524940cab51c0b4519e425a62c43a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d3d845ce28621d8a293d6c2f09c252611db7697713be35cdf73f77dc56faba57
MD5 df32557ffecba1ab138d9d500e0eff51
BLAKE2b-256 c2e029e0371103e7dca7559d292e8e365b0d13c230e998f13685e3da78cdf70a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2a4dc4be7dc4178417318d2e6f9b0f31ebe02bfb84b96d079aed0a4af8d0132b
MD5 9cfd3b88da0288463822931ae269a31c
BLAKE2b-256 5218a7adaaa39e1f1bb19b5040406a706e449ce488cd4787e7cffa3b53f950c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dc16ca8f7231dba8a9720805ed4f4d985181fe9858fc91a3cac461ab944359be
MD5 b77bbd9719088893f86698b669d0bdea
BLAKE2b-256 dcf5a08c6fe6e020c1a385f6dad8afc6bf872fd3850aa682966742133a4849f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.18-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.18-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4363cb8c69cfcd329140f3dea3253dff050b5f754939938d2874f0ddf6cb4c9f
MD5 e43181ca34e9b80ea2ba26e6d4a3d6a8
BLAKE2b-256 066af10fb529fa8b99feda6d1d855a295215870fe9b4ce5cad93428873f204fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e908bedccea4d4da0027e74bab1e33bdfbfda9ccb6571a39823a564ade93f10f
MD5 69be28b329ad94dfee7941aab20f15b6
BLAKE2b-256 54b3650109af7842799b92a646cf01dd2381bf7127d49bb615d1ced0fad21279

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4eefda57987cf6bc6f83d58a8e91122142d407255f253c3c6f05c749a490a96e
MD5 4158e0b98d16f3d36267ebb7a8697cf6
BLAKE2b-256 8229abe2778dc1ab1f82278a54ccabd6aef5fb56e9e2db90360103ce2e02eddc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9f7918f7ff73311ca636a854aa59ebf7b00421f5ed7205c3fe6583c035dc4590
MD5 696d0fb4daccee85ac63835ea16b2ff6
BLAKE2b-256 20f472de330c87df47726f4904104d2f7e98648685aa52297c17109072ef6160

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 833d29ec654e6c7fa05c2c35c4b610995a78cbeb4bccf3176878bf3816520b43
MD5 3c8bc7b0854870fbfb805d43f7b7fa65
BLAKE2b-256 c31a4f40ce0259573e2297cd57f0f070597509ea4df5fb99b9304e6a0bb33e64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf70e3eb381bc8e47c33f7439ad98ac1742d8948062f74dcdf0201ae1d2365f8
MD5 bb6917d91f303deb855d3ec8a18a9319
BLAKE2b-256 305c84c0b15ca79cdd2ce3c34a006176a065a59826e98a8340ead9bf34ec9ce4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d378396595474d8c08c4696a7400052485a462350d6a0b3d56eb11d0d095552e
MD5 cbe43becf0e68cfee2833902573f52d9
BLAKE2b-256 d9a62f1f45caa2826086ec5cec62a7585cfa4f5fbed5b871e7b02dee4ae970c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cef220053d6c343d55d709961fe0ca472e13a84b6d8f0b95c51a9f7864cad991
MD5 2171013ec92cd7092f788887396637ce
BLAKE2b-256 58c358e5aa78128f7de076f859cecaea0563f2acff12d3d0d7e9e0b598f9eb72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f3fff363edca06fc7e27471f21e20e733455dffc57b97e018b9714f3d654ec94
MD5 349d96ee9b12207915aa9fa422866bf6
BLAKE2b-256 8afdc3354193b27a3e30c9c08c772b49bdfe9837f321dde13d53398021def00d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.18-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.18-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 99251dd0392477a66a9c4f14e948a02095b4e052e59733cebd695bb3b32a4f39
MD5 0a20ab38de04d949a4bcbf6b3f9e37ad
BLAKE2b-256 ef04f69ffb2865d14796515a9637e22b4d1555d7df128b2e005169efd450d173

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 191b63ea1322ec01a3cd587bc2cb165e905ed0a17e6b508a14ffed78cadbda7c
MD5 12c5094d1afaeafba9e239e752abe800
BLAKE2b-256 f9af911d0acf5c03e791a061b35c21e652ed10972e2edcba3dd8b800da091f5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b1110854f2d48532f193f7ebb57b6e2a0d51df6878929365546b57e64e471c9
MD5 a767ded99ec309e5674049af889b8d98
BLAKE2b-256 e63e3d9ca4cfd000cd2b371645df964b80b14969523643d4d3f1ab0f6223dc81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58298b8322ff8851ca9ee3d77620357d87623749a7cff31ca0e4a8225c383030
MD5 d4b4cebd0039aa6c7e91bf81cb0879cd
BLAKE2b-256 45a43b5e23885df996e8216f14156ef2e30dc3307eab41b4f131f7ed8375115d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e8f5549d813c280dd1d26cfb888804cc67ffe0543341e062294c9f774262c001
MD5 5bb6bbd89f75491d57bf3e2f521eadd2
BLAKE2b-256 126a42d591cf903fcb3789d7dc328f43ccae7869350638557785a645868a695f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb10bc3520ff8ba6f08f49cc8af8f7dd883a07a5eccb6279af5d819156421709
MD5 33a84ca2a8215901bd4dfe3cfcb407f2
BLAKE2b-256 e781f444faf9cc221524dc5878befb63636b40f9e006ffb193b0e52dc8a179a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 15a8f2213769c267b54972ee9722bdbc4caefbd2725408eb5a00b3f7fff74fc4
MD5 1282d408ab6a7e7233c5581d3e0b07b5
BLAKE2b-256 d6be6c0660b63607038d0290d945fbf954049e1853570fd08d0a72773eec4cd2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.18-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.18-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7c5fc3d08c50055325e8af5894830beb48ef5c864ba539f058be10f6969ba7e3
MD5 5e2dc57f70a18cd45c108af0f1b4b573
BLAKE2b-256 98703d013d2f3f36ba4ea2d53dee8e077343512ec049dbaa13a144d54dfaa949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a17f9b4b4d366172d7e7cfe0a50261f0b04f6225ca38e7e48275361ee42b0bb9
MD5 2e6b9eaef120b599472250b74f016250
BLAKE2b-256 46ac3aa87a72c39f88659fcd4c1fefd6179bb720ca2049be8bfbe94d6891bae1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f51c4c497d2ed70fdf781d1a325131e8c0b702d7484e8a4259cad54d7591cf00
MD5 49dfcb9fe2b86f3d3ecc1bc4640e1caa
BLAKE2b-256 200d630c5610d183c6e1dcc8668120f8a4e993092dc91bc259818f666e08fee8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bbe1d295cf6372b166d8a6bdd36e404a49308bfdd25f91cf8de17a42351c252
MD5 cac7afede47931c418302f0d1b195bb1
BLAKE2b-256 63007d45a8aa8e7d43c45427bd0193bc0485192bb43f28844de3d75ddeb194ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 846e73a63a1b4f59a8836d785f63ad6ec6c263bc9a87a6b3af4aba12e6ed4c07
MD5 9aafaaa114fee4fcb7542ca9b5616f6b
BLAKE2b-256 b497e3a4df163924a1129e4ad09833e3e4135a6004131de206220167e85ea21e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c9643923270db1eef7346a3fc77eb3c77b5ec07fb47ecc49bcf9c02f830c59eb
MD5 f161d51b830e8a4ec2db9638c9b36dea
BLAKE2b-256 5d42e9c874ed4b1b6a6566ce5974158f780a23966130ed67bc3fa090173ab673

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5155f169884034e3d13c230f4831827ef38d2f99d5fb632b17a465ed808242e3
MD5 93cbb256148f44d68651a204ab71a7ad
BLAKE2b-256 fb81f1e4af31c90c71e6238ba4bb423a177616366e3ee38512d57cc9de271db3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.18-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.18-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 64bcc1844d9be0491357224951a1df95fff2a9cd66a5616c77dda43c692b9301
MD5 bcdb99b9058fbb953e1476de30404823
BLAKE2b-256 8b61d28650a9d64cef12aadde1e09571cfa11a34a6fdec713da502e38896d1a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e7ce8539372c813bcff4a0fd5e55b5a59d026a61b193b1b5ffee93c56451d7e5
MD5 2463484d50f5c5d4212673cab44ba378
BLAKE2b-256 91733459c67c00c73602674f6e79b4cd635ce647be4d685ebb420d8b5f5318f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2272ab1056cf98201825c0240332534181bc8d41e5419139c13b755136364311
MD5 fb759454cdfaac47cfe89cd4ba68f2e2
BLAKE2b-256 10c8282ab5401f0b481dd05c1049510373d4f45f332ce3b14b501ed28926bcca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1a4e729c173d4fa695e7bcfba0912688e83ee47c0870a6320eddfc3abccf5301
MD5 97e609f90ea8a3d44629f5227051c6f1
BLAKE2b-256 9e9b2608251bfd34c2158367a1cd9bb789d3ddba3ca49eacded32364427e1d8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 087f96d20a05c5479698b80c6282ff8c601195da25b8f6f77489ac02435b37a3
MD5 701be0fa2d4ae2acf19ae447c680687f
BLAKE2b-256 349b79831b2a380a41f0a32d10c87cc45797a82592d145da3a340843fbb80be0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4f56cd979b0ab4afadf64f1227579ea6fa4161c29991336ae9e706af968927f
MD5 31f3b54c241757d305059156748a567d
BLAKE2b-256 c1166510885a393a8f35da1ef2b3cc7c8ff03fb23bd2637ccb6e46fd8d6fd06c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aebad614ce13c60ae35e07bf70e7e99fd8fdf288172d808578d89e194b2ae5b8
MD5 aa09930c5c018df0ed9189784c46d186
BLAKE2b-256 16b0162d802b9f16035b25d6bbbc78220ec5edeafab00d8891e12dbc6e2ea89d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.18-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.18-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ce323889ff70ea0dda0505420a3f1d8ebb2d667ee62dbcfa33761ab21c543ade
MD5 170dc0dce15fc5d0fd4dda03fd203a01
BLAKE2b-256 a5c5240ea15b545b70dc1e5e37a52c7a1eeda1dd0c82db469daef71a60f16391

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 abe2e89656b8500ac5b95ae91622e5095c033fa7fb8e5440e8accef134bc123a
MD5 eb14d4a68065a773dae2c788262761b5
BLAKE2b-256 23201209994bc78be03c6834d6e53e626ec25f203085d731983d4e1d82e9b7d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9d414066760d142378c1440c6974efed1c97f26b123cf3cc27a2cd8f5a924445
MD5 25fae53b1769b74c735f2e3871b35f3b
BLAKE2b-256 9eba72131d1db380afc544d4ab89f77e3209914a9cc4d774042aa647d94da909

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32928e67994d5480054d48e21732d5a24b348a9833a46e88bbced87054324654
MD5 276bbe5e69fd087c13d267e36241152b
BLAKE2b-256 bcde10c841bedae01602da58a7c929ee301f07242c37977f329972aac639f770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 208fc49080d7efafdc969a6010d73bdc58693ddc01b2a88f088d8609df0074fa
MD5 29fbbef2651e1b2e208caebf2a641697
BLAKE2b-256 32cb6fe4669af585d9d93de263e9b154bdd5c7df529ae0f452b3a26f37ce42ef

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