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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.23-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.23-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.23.tar.gz.

File metadata

  • Download URL: httpxr-0.30.23.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.23.tar.gz
Algorithm Hash digest
SHA256 10457784a93590c432b4d12e1e90102329c63e78bb8fb068fb52f67695b4e351
MD5 6a74340125793ef5fc7411549ac325ac
BLAKE2b-256 aa911e1ab9b65199a4e1426c58d70fa18e305cb9764a082bdca33523debfea9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fdc91319bcd300c59bcb958863a51e1d420cc660e10c87083c3e3ab688296a72
MD5 96341d7067bcf8cf48cef38a5580090a
BLAKE2b-256 ab73ab85f9df828930726ae367c035ab91a68488ef2d63f5841c873fa128c692

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8373426ab9bf619fc33613b10040584e4712666542a79522972476e2effa3dd3
MD5 fb5791d4312cd7a2e5caaddd75d061fa
BLAKE2b-256 08c69773f9e8b4000133d2c04065a51983e2b130f64477fe2aa7e3880b065e1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31a9864be7dd5a4e4ca28b7b9b9af167d14535c5f141c49e1f329b01e3b60e7e
MD5 98dafa2ff3525706bb518d74a27235c8
BLAKE2b-256 bbc698c8be36f3138665c35ad2010dfdb5921293b4dcfdb1a4a887368d05f231

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 163e10d2f18c99fe4799484d2ff1766e25dc57001b988788600cc82715bed3e7
MD5 837817dbadde6f27cb2e40bdd94b8c8e
BLAKE2b-256 ded71130377af2fd4dcf2dec39d71e71d377d3be73a5370c7e661c9e19f808be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 039b96695168e59ee22560e1a3381c7acab33ec5a41adb32a238309d5a3244cf
MD5 56d30e82abdbf86cdd662b8d0e7771b6
BLAKE2b-256 95af89ddf4a4f09b2290a278e6f98b6010d4d55d2f74f2e7bc6a88cac4ff8d42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d9a95d80d6d9fd0bc3ce2ca26f439623bc647c32524bb1496570911a342ff8d1
MD5 47dc184e205c46b438d22992ea739c7c
BLAKE2b-256 30580c8e5f117c1512cda82e60092d7f1be11b79935aa033b11134519dfc3aab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.23-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.23-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 33f34fd33356b002322b1af0d785f325cebe4b60772b4d1d9b153437198621cf
MD5 378806f24d6d6989b66050579c543ea6
BLAKE2b-256 78836ddce845eb6e0891293d29b7c9209ecfbcea5281273e6cfb372f50fef014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1a22a711610554e7e97d3619ae625e55b028565e962449b445ba094a93eca3a1
MD5 ce5e073b9695045a4871e50168a6f871
BLAKE2b-256 06450c5950bc7748327f99fcdbd01dcd3a4db0b61eafaf8ebb8bdbb1dadb59a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9abf47b458ce4479a2e7f6a626a64de6c1b7ffda4df0c4297a24f99b4503f679
MD5 a9523526726556bd1b6ee1f3a5ad9a31
BLAKE2b-256 79d203569c2a04fabc83d244ab9123664a8c9d6cf88aec8c2067e57cc4b2050d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ac95519fdaf36036270d54ec2087bb633c43c3cfedd83881a5812120e40ad99
MD5 9d7ea98a8963b560b5a5e1ce8fd7b446
BLAKE2b-256 7d7d370a9b2e30309c1d156f2a7bac386a17df48ce870147fa3ec446c1df142d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 90ee98b275f63208b3e626c4bb459046d9ea1f60546a88ec31f20438e848ad0c
MD5 8a2b38fecd659f4987c9c249bdd31386
BLAKE2b-256 86606d50e2fc81fd3c11c72247a22d131c4dcb0410686145708ac0208c301a98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 808b8434bc341f2256367ac217e8d6816d98c9d18157840c8351cbe17b29ffb6
MD5 e9bf223171b7fcaff15db86fe2cd6c75
BLAKE2b-256 d8538936fa1d64b91ca66fc1e28052e884c60c022be72b5124ccf035febfd946

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7c535f4f47185f810e8427b65fadd6bb2cf56266b33a1a2de3cbfdbda45bf93e
MD5 ca7ddbe5681c33f11423c4615d4221ba
BLAKE2b-256 59f04a48718579364c58b6c8826655f870aec009c860d9f38902b62dabd524d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 12e39928338560eb67d69eb05e5680b1fad637870c4e2111abe6d8cd0e5d256e
MD5 e04d105c1c10ad65a09a216800564a02
BLAKE2b-256 4b78804fdffe125ff2680a0e8404e7f07a0745c3bbc7af5e3d4a41aa6c5a6e9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c729383d2d3c20c7db7c6108dbc68811b96c4f494128bc555f0f2d902d36bcb4
MD5 2886abbe2bc72d4441f5847229e2ffa1
BLAKE2b-256 dc1bf03a63ce2d7d309db8a1a4beaaeeac03d72dfef647f2decdd93f26ed399a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.23-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.23-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ee8c8ce4043daef78a596aa13fd516772e44054868dba9fe7cf8e485a6582c4f
MD5 dfae476bff2fc9be67191b981482f0bb
BLAKE2b-256 142aa291d775057a57c46e1c50539d482b963f05ba210567ac0596d9ec37d9d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 93e21775eab2cde586f5ff984cecd6395f7b099c7a0797a4fecc86b657ab40bb
MD5 a0ed6ff1c3163abf32c399a7f0d5f500
BLAKE2b-256 82efbe1026d1dd67e1c52df48824840b2d0212bf68d1dd68e7b669527d7e6118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1962529bff0bfd69581e286b2211a49bfe8c815327a0537fb3853cd6fe80b93
MD5 d4ba9674e4b773530e5b37f3856d750e
BLAKE2b-256 76b9ac2ee2c76c01d79afba85968b69a96bf4791ef81cf35257375cb46964746

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59d91ed8849d23f11d0813046ebeeef24ee243fe6dede5930e5e70ed5843dd01
MD5 162d15e491286f64eda8c3ef8093a713
BLAKE2b-256 a3be125ccdd5dc27ce25c532ce0d5e5e9f5aff9f9c025cc2e36e13abca634e01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fc9407c6ac74bc74acd947cf6a97ab10a3705853b83dbf1883cd709a6209a514
MD5 37d9d96b6e7c249b048855ceedf8a4f0
BLAKE2b-256 6149142e4bb06d0c17a9b53d6e1a9bdd7faf0570bfe4b60a559c47c28e550536

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55c6f526385d06e5a1b5cc3c612073acd8bc26487dd18dab51516a4396ceb35e
MD5 26370842bd47450b1152681942a05274
BLAKE2b-256 f0f962dd9de8d063ca55153517ff72e7080ec0306859105918c67d70d3c422c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d6d038ea6b61c1fbb7d9b0718409ca0c3fd9bd02e6a3318e4ff572a2f5b35d1c
MD5 ba3d5405107aefd1b70f7d4c29fe2fff
BLAKE2b-256 a7c3d5aa0423f99ff64e418e3133d585f9945f81ab6f2e3e8c44dc761e43b338

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.23-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.23-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 86e03dcef3dd46150f7b2f106c594710870c19e43a8b160bfd0f647ea66f7874
MD5 d917783c014d805e4e73bf2e8aabe566
BLAKE2b-256 58766c94bf8a2c9a6a9e77505d2aaf8d0fcd47399604c1986a13dc000388f258

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 14f0f8135b6ea53230320ea18d6b1f4a417668b4f629abe7a55238f33a526745
MD5 f647b0298d2e580cad5bda46f285e248
BLAKE2b-256 2b6eb0428b82536c3770d1a6530bd654749d5a9ba580887e64a53bc03e834d96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c94e64b7ab814b77359cfe195e6d3602f83fbc1ac7e77e485e5ebc1d314e1c25
MD5 a1949869e5ee2fc73dc866bde57d6046
BLAKE2b-256 52842cc048c15163a3ab1a78fcbc47ffdb0d263a581d5b676327ec8d3ff68eeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15e5dbd766883de178f7f5bb65486db46e0dd664ecae209ab6539ff8409c68e7
MD5 d4c27cdcc7bb6fbd38eb5b8927752a3f
BLAKE2b-256 bad634d94a694161044aa2fad06cf8f09da3581383107925a8b001494b07b27f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 318e38c8c42de2f8b2e01b5fd2f85ffe995d33becd56c4c8b1e4e05610fdb25c
MD5 4d69933456298f647c77e39ebd090e22
BLAKE2b-256 ff3ec9be567ecec382c699177adc617dfbede268d77c16cb90677814b8f52733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8e6c1facde86fff48089bdda14be442f28d025c7fb767fc0e2bdf06e421cd9f3
MD5 38deda6f9b8f4369d56a4f1c230432f5
BLAKE2b-256 220b459d8249c9cdfbf35dffd16db1d7c445e33434cf3b080162500da0c7d483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a911ced022bab69059b2f6aa54450b28ee53702d649a6db56d8118c63d1a753d
MD5 10e5147c0ab56b9708eb33ccae86346d
BLAKE2b-256 4201a88471f508e82d34d3ce7cd862c03fae674a006539c50e3a45fd6d6f8cba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.23-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.23-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3dcb40a422341567842860e3af01b09013f0d85011b0698bc3fdf22976faf39b
MD5 23b88223dd4e46badd18464f61b00558
BLAKE2b-256 a2adb80147546c94173ec4de36268cfc2a10fbb045549976c08fb7b4334cb76c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 901b58bba07628937b70d5d841f3239b8d1d23c5284d54a5773a8f78dff9e587
MD5 49169a030e67ae168265379c65a34686
BLAKE2b-256 556988b639b2d0e57d28e2d92b2cdaa5bb400a63c3a2fcf00c7caa043fbe3757

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 85994e31308a586875a746f43d32e2c167d132aa5f1488388bafff0de71329b3
MD5 e0589ea51a6ef2917639ea7934c10312
BLAKE2b-256 2931ba84a062710e7ffcf72c717c79faf3cd5ffd56e6f6ac1c78cc753278c606

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb5d9030384036db97122c788f7c7034cf8f082c2fdbb346a27aa08ca556f927
MD5 bdbf73ac9131664080059fbdf93c078e
BLAKE2b-256 e7682c32ac34484bbb382deaf40d299e6d98bd6cb7817aa2d145fa8c6845fa3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9625a60aa6fe551febfbd6b847e2de2fb865cb5e9bc86118ad22104aa559e866
MD5 2ccaf20c8e9a164a5785305daa976f8b
BLAKE2b-256 1b8a27b8a41ffc2e1010cc903e649edd325b8e9cbd4eb751e265a2267a7b50b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e898610246867b24797a0d345a2a7e24194ec00d8cefe06f13bf907f8cee93c
MD5 751879027cc9924978349fe56daea124
BLAKE2b-256 a441cf0561cdffad303f4992ebd3d5924aa65eb1487f52d4daff9b3150b5ffcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3603a8b38cc7ac1872311eb87591fbf36c94081cad50956fad9a090810ef9a79
MD5 d4809144743646dc38ee8e3189c11703
BLAKE2b-256 5eef16ab8169737db09526278bcc8619ddd393c8cfa32c46b3f95eb4ef0d7719

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.23-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.23-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ef3048d907bd9bda7b580d21480196f41349a8e5278152f8e5f1d558193456b
MD5 b80307eb3d7579ce567bc541c1828360
BLAKE2b-256 0a26f7f78741b8bd8681daf243849d8f432a8b6bce3b7c9dafb6caaeca4a6913

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9c341c9a9e4130fd9f5d150df581e74a6f8cbf211b3530b087be76ab2d35e425
MD5 5835e094ed7a5960c3bed4ebecb8cb06
BLAKE2b-256 bcf57aa1d0093b3510cf0e4c0408f3d756a8e048c0bd65402198c1d5d2acf036

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4f0979e60ad20556aa78c5c3a3980311ae0fa6c61a960117be379f8629d915d9
MD5 213f836cd610ea5c811b8f38450990f0
BLAKE2b-256 d4a391601f6922289c487b064c1d579c0676a23c91ae713e485b9a66c36b0a19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d387a66c0e28b3bbec8c1faca468e875a601aabb169d1ab16642e98e05b3383
MD5 41eadd2fe4bfd36c4212275e0ec8cdeb
BLAKE2b-256 c2f6403ed3a18846d770aad40a0069ffc9499a4f6a45ebdc5fe53c97c0629ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.23-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a798d62d691023e0744c211dacea870afea4b2b4dcd9968453641ebe8c26dcdd
MD5 0cdf1b2eea9701ae544c835de8bc3d42
BLAKE2b-256 8a0707330b69b3639dc1f3f5aad71d1f8c19cd299d157c4d9b4c81f067bdb11f

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