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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.14-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.14-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.14.tar.gz.

File metadata

  • Download URL: httpxr-0.30.14.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.14.tar.gz
Algorithm Hash digest
SHA256 d6137ac2bf1a70e91d020b57eb0ceb79227dd715fbb4cfc1ee4f1cd22053faa3
MD5 a8272963de4a04216346a909568164ed
BLAKE2b-256 49ad3e79d603d013ae811dd3ab14f249b1783da4a78972b6ad6d587063ec85fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8ea9ce1cff182e3834d44e933c6386c17aa436caa0ef16f55a526cc81a84300d
MD5 1c5b7230ab247902d37f54de0722c853
BLAKE2b-256 44f157e97adffe4d067e72e5692341c40db42bcdcf882b9f61e12bb8d7af60a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2d14d3de4b5bd47771efd3156ee7b9fb19f7689fdb28c2eb30e02b8b7e246335
MD5 91786fbc85d6d7eac57cc4e19b15cec5
BLAKE2b-256 c55a3c96c66cb99a5ba813811c33c87fdca76aba4ceefb02fe7cfe53218134a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 326206be309ae067f5a95788d06b2c7f480006a928a962d622416380a86193c3
MD5 4c1232e69a0486eebbc6d29804efb7a6
BLAKE2b-256 d01259816e44c4a4200e7e4aef367cd9675720be3cd4c89552ba66bb8c82fdb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb8f12c66ac89db3096320d52bf680a3c8007ab769cab6cd1e3f9fd5f78db665
MD5 54981ede1c3fa21bb96a84263cc8442a
BLAKE2b-256 40a37e7a8801c87af06342944bb52f96b11ec901d3e8def7650245547bab560b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5bf40b2921e1a01617384306ad114019af3aec7ee7255288b4f96143670a510b
MD5 07285e50cb33b36ac7e599f3f4238f8d
BLAKE2b-256 9516a87ed108f5b9092a82518e551ee406d60d7d2923b8d5370f69bd92ead78e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 aadb146bb83ca56c13f554574aa4d560062e3a2710ef5394dc7ac1ea2e114e9c
MD5 4a4d81fed9dac24c1061c00e6804406b
BLAKE2b-256 2739985d67ce1fc4e018509efc71049c53bfaf346e22f4989fa666a36e2ca2bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.14-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.14-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 30fa4702725e02f900b1c38c6286753e4ca13e106d997758d0d3bebfc4c6d8ab
MD5 6105f14054e92d11ec3f62e8d7aa4467
BLAKE2b-256 02903a5d7ffcb8064eec86e51e903d8ce9be387ac5cc513fd999db9c21b38d42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cbc5a87a41b40960b420e024848bd327d14e5dc7710e84fad6ac1ab19a31c903
MD5 847a3c944e4c055dee8fcb023cae789c
BLAKE2b-256 94f7ef20d70760d5b81e2ecbf9c17f1e0a455e96d01a33ba81e212aecf3fd18a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b083f95891d900e80f7afe6de68a469b74fd9824b7d9fe87668ea04cbf5bd58c
MD5 fd5888afbd7bb10f98755232385e13ba
BLAKE2b-256 d75f058b7986d505aafc938dc8fd5b6a6ecf7213c61b6208d025240c08a586a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c4976e7923e94262d20761e495ea360f389434af9dd39e8b88bedbe997e95302
MD5 912752d4ffbfa20020bba4326e7dcd03
BLAKE2b-256 90d73405bb43421759635ff3eeb60233693e3835912cffaef33deb6ea1d8fb6e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b00d2430f4b1e5518edd6c5e78f3a991a3446eafe5ea69df84e3e7ac21d82be5
MD5 835f13825198e72d1d60efc3cb232123
BLAKE2b-256 e4f72767b3251c4c86ce73ac376c3d09f8e3180a1b6921f06b011d47adedbe43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e770bead1b070747db5dc8a1fa380d1d87101a10600ec262f05b02a9fa0074c
MD5 124fdcd3c3409ecb1f0e9cf8cb070087
BLAKE2b-256 172e375b050154f9dd8a8292d01192d3f8897cb8392d61d3dc104dd91d0b03b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a364bc1f14e242d4c7a17901b624fdddeae13eb32629b0d0ad4903f7af1fd2ea
MD5 66169dc7316cae58b5c6359f25fab96f
BLAKE2b-256 fe0f6f784c4fd8e5661d8ecb8d93a98da80465f6440f560d9afba77e17190e2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1e0f69f0611cbc3aa35495047a972d1ac4ca966cc714664649b6bd564ee77642
MD5 3d866c19eafa447e48a586a7566f64a8
BLAKE2b-256 412ea4230c2d94e6ffdb118166c61c0364ab3342cde1963229414fc12190d72a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c76ddbbe12cff127c76149d688a0ae135c206893228edeeed8e179ba08f37b7b
MD5 bff252ff1d14c90cd5d3f90fe5687ca3
BLAKE2b-256 94635ed1b8b7d13362533da3633da5632b1bc033ab749e5f0d44fc64b82e6a3e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.14-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.14-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 575e1fe0d0521763f3086a9f2f72acdbbf156ae415725fda52d5c9e2051d9fc1
MD5 bbc92f6b531c68c018447ddd59c41ae7
BLAKE2b-256 1b920cbf6fa8a1906dc64ced98021634723395ef54a9b4f637026334b0eb5ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 efeb0c3625c4ca8d670a2f6dc085642cae26a21be374a5ca6c6980c478ddcc15
MD5 389a3fb2943e58c85b42b7734b77db06
BLAKE2b-256 5ff1f14017ae202460de54b7c479d8bfca34b2d0708c063de2e932ed54ec1837

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0deffd2c05bbfca24d1a4ae3a42d42937f8f1c82e81baffe96690ebb1b3eddcb
MD5 9f03d2028cfc394aa0ad01114184c251
BLAKE2b-256 b33db08f7064e84e00e7e5257270c4bca8773ea5c319d2fb98f2e0f32ac397b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cc103a496a0e860872ce72cf4a185b239d15cd6a43b5b20635b7655c6612ab2
MD5 b5b3142f134e8b89581d74b761442104
BLAKE2b-256 a8cdbef0ce94bacbc3a3733d9c252bee3546293a8efdc4002a4a60a0c1c04d3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cb313a41a5c640c6ed2a3ce2feb3206800d80efbff8544cce4cf300a2d56ec31
MD5 bcf67f05655da49ea6d2c917a53ffc5b
BLAKE2b-256 b8aa5ed3d1a85948912ed23328a0f46922c2d2482cf76d6f11739682739670d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87c21b176e9056d55b557a6ef143cdbf62cd7fd2a7768c39e66d7ead080e58d4
MD5 a77df4a571b4e6d39208db351f4a5e3e
BLAKE2b-256 5365fd58d18a3528ee61553b0612521b82c4cf252af1cb64db8194cce983bb1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2cc75d171077f80e60af1b996221ba33f533c289898cdf0b48861b198c339bfd
MD5 80253ecfc33b2fa0a83aba63be49d8ad
BLAKE2b-256 8f158f1097c62886f9c7c0b1f4fd867f6f7a7eaa3c41ad5589664e47e2c32ff8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.14-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.14-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d12771a773203320c78d6bc10168eeea3b17858b1884ced7d15b27958aa3cbda
MD5 84a150d4f6b446b94e587af3a6edf19b
BLAKE2b-256 60a7f4824b224c9edf72740a517a2878046a55bdd2dd403b670789cec95615e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0be6f215afb7a19b0b86bf9f1446f83078a6110cd37b0964414cde30677e393b
MD5 199876823830fbdeb1a8997507fe243d
BLAKE2b-256 f72d37ce4954fffe53d7bedd8aa7274c8ff6deadb54e03388c4cecaab0e4404b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7cd6e9cb82abfd5a2a20b92871c05c10a3f5e1f8fc25dc21395c942b4c485323
MD5 796718d435f8d975898018a4ac686b14
BLAKE2b-256 14b2e6b279e47d65054047db0478716c4d236d3644290a473d41b5507ede95ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b117ed12fee4ef944667539878810a10ddd673e9224cffc4ffce62de2eaf5197
MD5 f08802e8b5d5429cb543a3a6c871bdcc
BLAKE2b-256 765c5128e84691a18288640274f178a5efed0e0c0dc376e10a78e56f0ef2b035

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c9631a6a2aab47936d67adb4d7e6a82f1382eb33e836db4956c18a32cf5282f
MD5 dd2e24a5293092f15e2c9ad68f9fc430
BLAKE2b-256 6b3712a478d4c6a69fc7c94e4d21358da75cddce3f6218396b549403b43009f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dfdc2039236e6419bd2fe3de6deb36e123ad2f35f4aa960b46786fafc03f7cea
MD5 e26b60d55038d4e2164a2275b860f487
BLAKE2b-256 f6d6509776773d52cffc4176733594cca0cb8abb17f406ba4aa28e45782cb249

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f62fda226934fa143f30a38e1e5c6fd854b600cdf95835c2ed9695a2b8f95c55
MD5 db2caf00596ca7878efbbd28b2cb42ce
BLAKE2b-256 23098ea7dd9d34248c8e409f32df1d91d225e85b87e455e244d13685602e99c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.14-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.14-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b452dd96fb9d89980a55473e68e98291df33d3297b61d7f9f14cd2194cad827
MD5 37f2c3fc8ab45af85f863203988cb837
BLAKE2b-256 f72a3189b6b5be3e0e978e9838febe83b46f02a4cbad7ab3bc36bd7d62ad0c65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fd059c87621d545752a60492a962da45abdd40f79432d774eb929694d47ba6c4
MD5 46b5c3d6aa0a6912f6d9c16aab24eb32
BLAKE2b-256 39d6a2d183d41ca2100375f3dbe52e4629c963bcaa38111f2a55d148d1905859

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8a3095acd4f37bf410f4052afdbbcfe674927ff24eb1494d6771daed0965697f
MD5 47a4537f0f50e9b4518bbb2e51e3d858
BLAKE2b-256 2818009436964ba9dda7a2a2f61256991e5421f7a2c75c7269784c576750271b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aeded1bea4817443cd1f3633215e27327ca957f4570a4ec67078a6c438c943fa
MD5 ba5403fccdc486ba039c130cac9e0f95
BLAKE2b-256 54aee2fb32f80ebdb0c5b7544a7ba5efa9b05b8ffa343565076ddefdd2ef17c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c03374de3e22548854af51363f3556b5f0930dc2c448f5778e6d4b2945fefe7d
MD5 6d3b931841536d0cca1cdce76fc06b0e
BLAKE2b-256 814b15bc9ca91c173542c1540ebc97609e43dfe22a9b1c7a3f830fd66a2be1d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1d20c2701914dfe7a2efe8b4bc27360aa9a1dba15ee2bad2c098d7cc4a9a631
MD5 af6a1565ee57bd8d5307e1a443664269
BLAKE2b-256 a789db0fda14b346dfbdfd399cf883d08da8670f2e00316b4aced4fcbe60f894

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 26a958aa3c36785d4016e1aa265d0aff71b9a67dc75ebabbcfc73eb17ec8a51e
MD5 3332f987d43000ad3fa6983ae3b0360f
BLAKE2b-256 d00ad7f86eed9bf02f89a0dd49f4d8ace375e00a0412cf55784c15b644d52d2a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.14-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.14-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 12d8e75e6fed6432eba6a9521a3cf5a33b79ea3e7c8db9ccdacd5e52d34361e2
MD5 6570f5a6360e87cb5979967c874b9b87
BLAKE2b-256 b579037d603b09383e94b11ddb8b820e6c4951f56a305a972019bf07ebe9adef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8c689e72af2dfa840186cc01b52a5f29bf7f39a443fdfef9405a95c10394c59a
MD5 88da1d265652c79aa06b3e3cd91cbcb7
BLAKE2b-256 78af0e161809dd592e2e9fe6295d2672d3e7ff521b548731a85634c0bce7293e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9d1a1de50b23913ff3758a3bf13735359957f0356d8a639826d6d9ac07f24dac
MD5 b6aef9c2d4dcd92654e8ddb01f0e4bcd
BLAKE2b-256 acfbc0565e60d536faeff72d9e913e46079513005bcd4aa1aeef9c7f5d8f0826

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 094183c7e268e3e89fb41d67ab98db1a48f43718983bbab527cf77b0221ad6ee
MD5 097f8361eb840af4415b1d68a5312edd
BLAKE2b-256 17f12359e088584c68ced6718b63b150cbb3a792ade4bf6bb4e0aad5ef697bcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.14-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1d621744701afe688a59c3b8a264855bde1613958e65f428372e744da34b1758
MD5 00b1725539b20bc5a713d0eea390e437
BLAKE2b-256 cf859ebd554bdc5db8cabe9a32feb5158ebde602ead9d67f3543f9e55dbfcc4a

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