Skip to main content

A 1:1 Rust port of httpx — same API, faster execution.

Project description

httpxr logo

httpxr

CI PyPI version Python versions Docs

A Rust-powered HTTP client built on the httpx API — same interface, faster execution, and a growing set of high-performance extensions for data ingestion.

📖 Documentation · 📦 PyPI · 🐙 GitHub · 🤖 llm.txt

[!NOTE] 🤖 AI-Generated — Every line of Rust, Python, and configuration in this project was written by an AI coding agent powered by Claude Opus 4.6. The iterative process of getting all 1300+ tests to pass involved human oversight — reviewing agent output, steering direction, and deciding next steps — so this was not a press-button-and-done affair. Read the full story →


What is httpxr?

httpxr started as a faithful port of httpx — swap import httpx for import httpxr and everything just works, but faster thanks to native Rust networking, TLS, and compression.

It has since grown beyond a 1:1 port. The bundled httpxr.extensions module adds high-performance helpers designed for big-data ingestion pipelines (Databricks, PySpark, NDJSON streams) that go well beyond what plain httpx provides:

Feature Purpose
paginate_to_records() Lazy record iterator over paginated APIs — O(1) memory
iter_json_bytes() Stream NDJSON/SSE as raw bytes — zero UTF-8 decode overhead
gather_raw_bytes() Concurrent batch requests → bytes/parsed, powered by Rust concurrency
OAuth2Auth Client-credentials auth with automatic token refresh

The networking layer is reimplemented in Rust:

Layer Technology
Python bindings PyO3
Async HTTP reqwest + tokio
Sync HTTP reqwest + tokio
TLS rustls + native-tls
Compression gzip, brotli, zstd, deflate (native Rust)

Zero Python Dependencies

Unlike httpx (which depends on httpcore, certifi, anyio, idna, and optional packages for compression), httpxr has zero runtime Python dependencies. Everything — HTTP, TLS, compression, SOCKS proxy, IDNA encoding — is handled natively in Rust.


Benchmarks

All benchmarks run against 10 HTTP libraries on a local ASGI server (uvicorn), 100 rounds each. Scenarios: Single GET, 50 Sequential GETs, 50 Concurrent GETs.

HTTP Library Benchmark

📊 Interactive version → with full hover/zoom

Summary (median, ms — lower is better)

Scenario httpxr httpr pyreqwest ry aiohttp curl_cffi urllib3 rnet httpx niquests
Single GET 0.23 0.15 0.17 0.19 0.22 0.23 0.31 0.33 0.34 0.43
50 Sequential GETs 7.05 6.73 6.10 9.34 9.50 12.35 13.34 15.80 19.13 19.28
50 Concurrent GETs 4.83 7.40 6.53 7.39 6.63 11.39 14.19 9.50 70.51 20.62

Key takeaways:

  • httpxr is the fastest full-featured httpx-compatible client — on par with raw Rust libraries
  • #1 under concurrency — faster than all other libraries including httpr, pyreqwest, and ry
  • ~2.3× faster than httpx for sequential workloads
  • ~12× faster than httpx under concurrency (GIL-free Rust)
  • Competitive with bare-metal libraries (pyreqwest, ry) while offering the full httpx API

Why httpxr is slightly slower on Single GET

Libraries like httpr and pyreqwest achieve lower single-request latency (~0.17-0.19ms) because they return minimal response objects — essentially just status + bytes + a headers dict. They are not full httpx drop-in replacements.

httpxr returns full httpx-compatible Response objects with:

  • Parsed URL with scheme/host/path/query components
  • Headers (multidict with case-insensitive lookup)
  • Request back-reference, redirect history, elapsed timing
  • Event hooks, auth flows, cookie persistence, transport mounts

This ~0.08ms of extra per-request overhead is the cost of 100% API compatibility with httpx. Under real-world workloads (sequential/concurrent), httpxr's Rust transport layer dominates and beats httpx in both scenarios.

# Reproduce benchmarks locally:
uv sync --group dev --group benchmark
uv run pytest benchmarks/test_bench_httpx.py --benchmark-json=benchmarks/pytest_benchmark_results.json
uv run python benchmarks/generate_plots.py

Quick Start

pip install httpxr

To also install the optional CLI:

pip install "httpxr[cli]"

Sync:

import httpxr

with httpxr.Client() as client:
    r = client.get("https://httpbin.org/get")
    print(r.status_code)
    print(r.json())

Async:

import httpxr, asyncio

async def main():
    async with httpxr.AsyncClient() as client:
        r = await client.get("https://httpbin.org/get")
        print(r.json())

asyncio.run(main())

API Compatibility

httpxr supports the full httpx API surface:

  • Client / AsyncClient — sync and async HTTP clients
  • Request / Response — full request/response models
  • URL, Headers, QueryParams, Cookies — all data types
  • Timeout, Limits, Proxy — configuration objects
  • MockTransport, ASGITransport, WSGITransport — test transports
  • Authentication flows, redirects, streaming, event hooks
  • HTTP/1.1 & HTTP/2, SOCKS proxy support
  • Server-Sent Events via httpxr.sse (port of httpx-sse)
  • CLI via httpxr command (requires pip install "httpxr[cli]")
  • Python 3.10, 3.11, 3.12, 3.13

Zero-Effort httpx Swap — httpxr.compat

Already using httpx everywhere? Add one line to your entrypoint and every import httpx — including inside third-party libraries — will transparently use httpxr instead:

import httpxr.compat   # add this once, e.g. in main.py / settings.py

import httpx           # ← now resolves to httpxr 🚀

This works by registering httpxr as sys.modules["httpx"] at import time. No code changes required — all your existing httpx calls keep working at Rust speed.

import os
# Feature-flag style: switch via env var
if os.environ.get("USE_HTTPXR"):
    import httpxr.compat  # noqa: F401

import httpx  # uses httpxr or httpx based on env var

Full compatibility shim docs →


httpxr Extensions

Beyond the standard httpx API, httpxr adds features that leverage the Rust runtime:

gather() — Concurrent Batch Requests

Dispatch multiple requests concurrently with a single call. Requests are built in Python, then sent in parallel via Rust's tokio runtime with zero GIL contention.

with httpxr.Client() as client:
    requests = [
        client.build_request("GET", f"https://api.example.com/items/{i}")
        for i in range(100)
    ]
    responses = client.gather(requests, max_concurrency=10)
Parameter Default Description
max_concurrency 10 Max simultaneous in-flight requests
return_exceptions False Return errors inline instead of raising

📖 gather() docs →

paginate() — Auto-Follow Pagination

Automatically follow pagination links across multiple API responses.

# Follow @odata.nextLink in JSON body (Microsoft Graph)
pages = client.paginate("GET", url, next_url="@odata.nextLink")

# Follow Link header (GitHub-style)
pages = client.paginate("GET", url, next_header="link")

# Custom extractor function
pages = client.paginate("GET", url, next_func=my_extractor)
Parameter Default Description
next_url JSON key containing the next page URL
next_header HTTP header to parse for rel="next" links
next_func Custom Callable[[Response], str | None]
max_pages 100 Stop after N pages

Both methods are available on Client (sync) and AsyncClient (async). See examples/gather.py and examples/paginate.py for full examples.

📖 paginate() docs →

gather_raw() — Batch Raw Requests

Like gather() but returns (status, headers, body) tuples — maximum throughput for high-volume workloads where you don't need full Response objects.

paginate_get() / paginate_post() — Convenience Wrappers

Shorthand for paginate("GET", ...) and paginate("POST", ...).

gather_paginate() — Concurrent Paginated Fetches

Fetch all pages from multiple paginated endpoints concurrently in one call.

📖 Full extensions docs →

download() — Direct File Download

with httpxr.Client() as client:
    client.download("https://example.com/data.csv", "/tmp/data.csv")

response.json_bytes() — Raw JSON Bytes

Returns the response body as bytes without the UTF-8 decode step — feed directly into orjson or msgspec.

response.iter_json() — NDJSON & SSE Streaming

Parse NDJSON or SSE responses as a stream of Python dicts. Handles data: prefixes and [DONE] sentinels automatically.

📖 Requests & Responses docs →

RetryConfig — Automatic Retries

with httpxr.Client(retry=httpxr.RetryConfig(max_retries=3, backoff_factor=0.5)) as client:
    r = client.get("https://api.example.com/flaky")

RateLimit — Request Throttling

with httpxr.Client(rate_limit=httpxr.RateLimit(requests_per_second=10.0)) as client:
    for i in range(1000):
        client.get(f"https://api.example.com/items/{i}")  # auto-throttled

📖 Resilience docs →

httpxr.sse — Server-Sent Events

from httpxr.sse import connect_sse

with httpxr.Client() as client:
    with connect_sse(client, "GET", "https://example.com/stream") as source:
        for event in source.iter_sse():
            print(event.event, event.data)

Port of httpx-sse — supports sync and async, EventSource, ServerSentEvent, and SSEError.

📖 SSE docs →

Raw API — Maximum-Speed Dispatch

For latency-critical code, get_raw(), post_raw(), put_raw(), patch_raw(), delete_raw(), and head_raw() bypass all httpx Request/Response construction and call reqwest directly.

with httpxr.Client() as client:
    status, headers, body = client.get_raw("https://api.example.com/data")
    # status:  int (e.g. 200)
    # headers: dict[str, str]
    # body:    bytes

These accept url (full URL, not path), optional headers (dict), optional body (bytes, for POST/PUT/PATCH), and optional timeout (float, seconds).

📖 Full extensions docs →


Test Suite

The port is validated against the complete httpx test suite1303 tests across 30+ modules, ported 1:1 from the original project.

Behavioral Differences

Difference Detail Why it's OK
Header ordering Default headers sent in different order Headers are unordered per RFC 9110 §5.3
MockTransport init Handler stored differently internally Test logic and assertions unchanged

Test Modifications (6 files)

Change Original New Reason
User-Agent python-httpx/… python-httpxr/… Reflects actual client identity
Logger name "httpx" "httpxr" Logs should identify the actual library
Timeout validation Timeout(pool=60.0) raises Succeeds PyO3 framework limitation
Test URLs Hardcoded port Dynamic server.url Random OS port in test server
Write timeout Catches WriteTimeout Catches TimeoutException Rust transport may buffer writes via OS kernel, surfacing timeout on read instead of write

Development

git clone https://github.com/bmsuisse/httpxr.git
cd httpxr
uv sync --group dev
maturin develop
uv run pytest tests/
uv run pyright

A pre-push hook runs pytest and pyright automatically before every push.


How It Was Built

Every line of code in this project was written by an AI coding agent powered by Claude Opus 4.6. The iterative process — running tests, reading failures, fixing the Rust implementation, rebuilding — was guided by human oversight: reviewing agent output, steering direction, and deciding what to tackle next. This was not a fully autonomous "press button and done" workflow, but a human-in-the-loop collaboration where the AI did the coding and the human kept it on track. Still, the project demonstrates what becomes possible when an AI agent is given a clear, measurable goal — and hints at a near future where this kind of work runs fully autonomously.

Why build another Rust HTTP library? Great Rust-powered Python HTTP clients already exist — pyreqwest, httpr, rnet, and others. This project was never about reinventing the wheel. It started as an experiment to see how well an AI coding agent performs when given a clear, well-scoped goal in a domain with established solutions. The two objectives — pass every httpx test and beat httpx in benchmarks — provided a tight feedback loop to push the agent's capabilities. Along the way the result turned into a genuinely useful library, so here it is. 🙂

The agent was given two objectives and iterated until both were achieved:

Phase 1: Correctness — Pass All httpx Tests

The complete httpx test suite (1300+ tests) served as the specification. The agent ported each test module, ran pytest, read the failures, fixed the Rust implementation, rebuilt, and repeated — across clients, models, transports, streaming, auth flows, and edge cases — until all 1303 tests passed.

Phase 2: Performance — Beat the Benchmarks

With correctness locked in, the agent ran benchmarks against 9 other HTTP libraries, profiled the hot path, and optimized: releasing the GIL during I/O, minimizing Python ↔ Rust boundary crossings, batching header construction, reusing connections and the tokio runtime. Each cycle was followed by a test run to ensure nothing regressed.

The iterative loop — correctness first, performance second, verify both continuously — produced a client that is fully compatible with httpx while being 2.3× faster sequentially and 12× faster under concurrency.

📖 Full development story →


License

Licensed under either of:

at your option.

This project is a Rust port of httpx by Encode OSS Ltd, originally licensed under the BSD 3-Clause License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

httpxr-0.30.21.tar.gz (6.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

httpxr-0.30.21-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.7 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

httpxr-0.30.21-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.21-cp314-cp314-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

httpxr-0.30.21-cp313-cp313t-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

httpxr-0.30.21-cp313-cp313t-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.21-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.21-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.21.tar.gz.

File metadata

  • Download URL: httpxr-0.30.21.tar.gz
  • Upload date:
  • Size: 6.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for httpxr-0.30.21.tar.gz
Algorithm Hash digest
SHA256 d69a66f9a077fba720536fcc15a0fc153f7c28bd0315290b24b0cf157d15ec94
MD5 b58f10d81ae1af455178409cd2e7bd57
BLAKE2b-256 ed5b34985ddeef2581b1004ad0a03e2b193859875b21a7469d9b8fbd399536e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 de08d3d0a1c4c7b391ab79e85e6578a515f94a3c196d35b7956a06b30b162d7a
MD5 c603d6d0558f482d659c03c248029793
BLAKE2b-256 2b61a63766592fae182dc25e6f8abfa44f1d3859c46adab7d9e29afbaf117fbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bbbed4741e4570519f3381f48864124fdfd3c9219e9b8e0660c25245eef0a534
MD5 d5a6e262a0c19bcde319601e7c8a5566
BLAKE2b-256 2ccbf183cf97a4e2aa020b6444fc7fbebb0aa3318cc0ca05491c9d7740ebbe58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c8159b08b7ac3a23330c15febd4723bf6bd108e7e695861be7c05f8f02542d5
MD5 9043f4cfbed1ab48518774884d1df7c1
BLAKE2b-256 17b0ba2ea7d7be6846af7684ccceb05469e3a73792fdb0f696e629f88b91f9fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 82d3debe814288b81ffc93afe5444875ac2850e48c8800d5ad6d32e0842907d7
MD5 fa529d294379d614622981804ca888c3
BLAKE2b-256 a97f32870cfc9272fed032542eb7bf56c0ffb0764cede455a6158206cbcd2709

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 27636662a53c44a30eb28b60a7be8261c469a406c5293c9efb6c9d60b73b07e6
MD5 e3c61a7af69699a5d88d3e1e81e495c6
BLAKE2b-256 75f7fcb0ad4e8b739bd9feff13c2e5b95fa1783269d1e35a032a64c6fd173558

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e4b4babd1f60725a9d43f1bb885a81c8cd785b80a9879257cc2e4b9943de08e6
MD5 745548759f3ba06664b754b109e6ceeb
BLAKE2b-256 12e222d6ab7dd1ecdebeb20517dd704f69489044578b6f92e9cf87b93a203bf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.21-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.21-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0bb8c3b0380a4fcb0d7f4e761f2a8cb6a8d234e9b524763732a1be501e5146d2
MD5 b171d13c0bef2d3ace574b4ebb91d476
BLAKE2b-256 b13bf62c2b46f3328530e0081b806f2869c615867aff6b8e0224d579e43efd0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 82c32d5ce204c2e4077d9aacfbd39d2ebaa32ab15ffba6ede9ff42e37c5993e3
MD5 ac8445dcdae2e8c5cf45fd7fb2ec7f0c
BLAKE2b-256 d0de7e8cd1a9b9a934885c70acb35f0e666fdc159fdce76b39799b8ea083119b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4e5c2de17b6f56c622a83315afa193d16fe8f196f4a68707493ec01ee14370e0
MD5 01230b548513cd0c1dd68b3d38af8bcf
BLAKE2b-256 fac68d262b6755eecadd83f12f7c3dd9311a96fbe1a19a33290ca6ace1d2a1c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 241dbc6249207d90956ba38c5810d3667489932994e8d508b9f1fd090ec65c56
MD5 29bd0e532893f30f79868d53a2246d8f
BLAKE2b-256 47977cfc628605e0b36cc9849df6955719e9e54401b9a98f871c2c7fd287609f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52468a9363f5f92dbd90bac77c356085e0a2f8a1c70a3aa40ccc6382ae67bb38
MD5 2a968970fff8a9eefa5c840f211966d8
BLAKE2b-256 3c51447b8f3b77536bf06d3491f5fcef45f9bc45c8a0b383ec32c7f0a4ba696e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa5e7fe1dd626ca8c3beccd37224db605d7a1f9ef9f4e93a282454a52a57bda9
MD5 2764353da4c9f248b0d8e12e6ad2948f
BLAKE2b-256 7f97eab3d4798b625916e6f6d1481cb58cad3324003c3dff6209d879b9ef4d9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1a4a483725f2aa9eb76ee9a113d54d2d6a62cc188e1946ae2bb48a8dd148797c
MD5 23bdd24b73aa88046f25dbbc732ab561
BLAKE2b-256 a11a3b2ee779e72cb7350a8fc011bdf4a88543bd17a59a4fdeac13d4925d9f9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f28c8970b2490ef014212b7e478129f0503dae69ba09a25ae6c51b1315e41fb1
MD5 72f80c223d41878623c05571a0bdfaff
BLAKE2b-256 8926f63a88a666417285697b20c74cb12997cada2f03e7fb9ad0027a221cf827

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5ce84632b2eb0d3f39520024b0e3f8e38a6f2b7857b8bd98f7645f535e8b3901
MD5 2decb55d830e99bcc465b4afb50556ff
BLAKE2b-256 c6fc495fc7f0f7f598926d07f30a194d55c81f6461d6f4acee862cfcc87ac893

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.21-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.21-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 535cdc739e04ddcf371b108b12a73fa314051467c2fdbf44e3c2640eb49f68a9
MD5 197420b22e05eb28246221f263e612e2
BLAKE2b-256 077560e3302ed3bf1482f62d61c56ca22d5249df386308d6d1d3877666fd7e03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a4713fb95ffc06cfbc003f46f7dd1a3b882ebf4654b21ecc131af06cd0864939
MD5 37ab6fb8d2773a5ff7c814fe63343cb8
BLAKE2b-256 f0649a94be41291a02586247b116bd04901d419a2293d4acb4b89dd700f325b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 65078ffe0c935fec565202e68a60d7d2d208c227ff2f40402e22c27bdaf7a136
MD5 97cd27b806d948a795b90967f3fd9954
BLAKE2b-256 da3921c430609c202f746891ed987e16b1d657c871a1ceae69022f2b0e0f4068

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6ed9536d798a314c0e6b77f4e2d76868e8c29c3292c1c59696a9c7a0638297c
MD5 bbda5693992de5cac8cdb888372b9a41
BLAKE2b-256 b4ce1c9f633f8431f653e43965334b4b16a525cfe1a9d1a4963226d85ec02953

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f8abae652f9d9bd42748351d75739aef71138d52ae27aac4f33497ef2840d200
MD5 967f85192fe3ff05eb471634f83c95eb
BLAKE2b-256 75619781a2ac4402e96cf52e27f2fce8db9d4974bcb121422dbfacd811406175

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e0ee68a8b734dd113e9b02a57e6ac0eeb96aa7d07860ad037c932266b1719b9
MD5 aff01f471affd5d33964dd0f1568ede9
BLAKE2b-256 aea8088764f5428d7ac131128d614231153e98ff7f07977293aa4a14c9cc7bba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d4ee2fec6a658ac7c3c6f28c88ad3ba485d252d0e937dd0d6ab8f199930b5aa8
MD5 2b193062ed7f69be99d4b290d7326cf4
BLAKE2b-256 acb4bb78c3d68a5bcee35f5a41a3f49431c4b0f60e5b9c1d354b795d953e518a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.21-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.21-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2b90070a514b1abb960394975137378182210e12b6a11c85c63e0c75aa216f70
MD5 4b71aeea4c06aee49650249e7b49adc3
BLAKE2b-256 0f354852e84763624e03369bdb55b284b37c501ac63a336de62ae238fa5508dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8f9a9ec5476594a721084c23d545b70a1c545b5ffea4d4a9a1b9cf9f354f9765
MD5 7bf2a6cdc7c7fb6f62406490e1c4bb7f
BLAKE2b-256 9d13ef802eacdd38d49dfd84c5803a07be2d289dadf32392e808706cdd17a9bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6eb8389d139e07c5ad17bc1ca68ee431055409208d2b3fe858db82cf608a997e
MD5 27a736bf229443f2e44bf46119769dfc
BLAKE2b-256 e69de23a21e47dc52219af65330fae106ea85c17673df44d5788344c8056c2d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 624f4149d71903efeb1496e10b654b8de7be685835087e9c5bcc23c85c59632e
MD5 dfe344d7231addd3286de8966d879675
BLAKE2b-256 0e6feb9ea8058f1ab70fda4987f19224371126786bc1c008732957fdc9e798e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2276781df04d0d23fccf50d6852f63bfd7cc69146137d17db142b9696d79495f
MD5 195d63519f1c91034fa4e7d3ec3f7c2e
BLAKE2b-256 ec6619fd4b4e7ffb5cee5825cbc8a2c497b0c2388186a3c7388b9af18a43a10f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 309389db22c1ea689411b1016a3dc3199d3c2103be2fb47727b3e27b1da05b93
MD5 7cbd15cfb11b4f7d6aad2b0df375b802
BLAKE2b-256 c6fea98b885f71216dc32032459cf44cc5440531488313a02e13e1450b3ff33b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 16d9514583207a20fc051bbea21a36d9cb691b6dd0fa8d355a4594b99a9f2f2a
MD5 15049afb174609433928ce6dd2961a47
BLAKE2b-256 78cb6eb12d1591490280950dd66fa13021bec79cfd910faf47a89cf684e5f0a3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.21-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.21-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1635a0d5dfe48714f9951b6bb485d7f9740f80304510657b87a7a5dfb706ce84
MD5 785f67cd02563bbdcc1eee4bcc0239b6
BLAKE2b-256 9d31457d3ec0525904cd0a4db590278f321efd8e5757f85f4737853543011e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8aa0f8e777e937b85e584259f3f4581704edf07bb4bbfbf1b3782833fa6a07ec
MD5 e6288638e6145e32e41a29795b7dc981
BLAKE2b-256 33d76bfa9b3d26ddf3c266be6b62c1ea1984bef8a53cf0d18e6e929de5919e05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0bca5b89cc4005b8e86e9a23f457d188c4ba31a1659a9fc1eec2dcf5bc87e58b
MD5 e150ef3b3629fa2925c54c0631e0dc1f
BLAKE2b-256 b6bf404afb4eae48d537d2698d61b1bd807b13f02f90be83ab1094d32524b4cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5883f7e8bfcf49d4834e703997e3155dddaa8c085965a094c6b3512086443879
MD5 3ad18434b4ae7c86a0fc3ad163792c40
BLAKE2b-256 d47ce561dd6506cc2c1adc9a246ea7a93425621b46a64213e5d42cd257f3f2a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c69180b328f463eaad8e4295be6efd614e3624ab4a842dc12490822b55795a97
MD5 16cea2a5c78e44d3a1be01665eea4601
BLAKE2b-256 d6891c2634ebc3d7154bc912a88426766828623db7ab7812ce32a1aadad0f2d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a2425fac208756a322e44ed9a4bd3e8af61348527dee9e51c867c7ed6abf53b
MD5 8aad0c47c0ab85edfa31a0ba0eeda31c
BLAKE2b-256 5b0e6ddb9eb70c45206babf30b45a236f32f2027df37f9827f2e5e6dc6075a4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c0f36bef5aa00c4a53dde71cda23e32d236a2d1cd023581059c2b1431df12093
MD5 49c6d95ad5b8e77c9ad7ab043a300719
BLAKE2b-256 d9c4552d82fe5803a9cbc2b604f9849176f1df94120e9b4e69026bce46837d60

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.21-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.21-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 838a63daaf9eb18eb9c0edbea7adb05cdcef7e8bb3f781ea0dbf0a21142f915e
MD5 936b7e36c0370be2bab3c81766b034e1
BLAKE2b-256 4b972a4d47b77192fe60deb9a0ac59026d9ee3aaa84bd0210da94a892db6b977

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5921bc8fb9170cbfd9b2264acc4e271b037c6147d042ca2b9938ec55a24ce655
MD5 68d1059747c31a40880914b7c4fa0a20
BLAKE2b-256 95143eabbb86eaa01c6c08c5ff5a4c8855c85fe46ce98318d947836ec15fa634

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 55972e5e1506a2f7e091b522367adc1cf3cee135ed60e0bd71b3000784bbb810
MD5 42eb56666394da166dc31ceac81b4cfd
BLAKE2b-256 3481f07bfa1ba1fdd3fa3ac3a56d2be92e0ab801940372b226ce74d72b687f61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a6c232c4b0504de4ff4c44c6c51d8d5445eaa83d8792981072c29720a2f58968
MD5 3b352c6ca97cbd0f7abfdfb6b045768c
BLAKE2b-256 6b94cedf1423c31d4539fa71669c2be6f781c7a93c1ed9aa72b99d4d9fa487ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.21-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d0e25ebbc723fc2b8061a3e710f08c626265bec7e3639f5a4e97b0a9bf04030d
MD5 4cdbbe3c850c690c8fd278ba8156bcb6
BLAKE2b-256 2f47f2b6676b564402c6d1568ee7c078b964d6b0b5edff9a5f50fc36ad5df7f3

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