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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.20-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.20-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.20.tar.gz.

File metadata

  • Download URL: httpxr-0.30.20.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.20.tar.gz
Algorithm Hash digest
SHA256 79826fa30208b35fe4440014186cbe53def47e9eaee56253638e0787684c1ebb
MD5 990defa931f9151d79ff294e7fdbc33d
BLAKE2b-256 fd6b019f7241a41870002ec7f2ebf79458bd3a9319568e95495598a77b433d14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4204e7a22410849bf95224b6748709aa8c67cada0aa96e000348b0a5cbaa41ae
MD5 910aeae918389efc1eb6e9fe80f53ab4
BLAKE2b-256 53d568ae87cf9dd3d85fea08944767a8f92592fe2a7c13de3b6b6bac31cb0822

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 33fad16a9b42376a1a49a449efa0ba715e4fa0ee82f758e729493e46b5f14c59
MD5 6989e0ec4181e45548671f0cb586d87c
BLAKE2b-256 5b6a3a9551128af8eaa0e6f3f1cfedaacba18ac78a9dc44f98855f7a504f76d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f0ce2f51b0e314bf8f1510f722b60f599f46cf250da850480f62c8fc4c092f1
MD5 cfa1d489feb8dafd834905202e61607d
BLAKE2b-256 c1b590f459458d650f8b84bd640ad781838cbdc332f3b3dc32938c33d8dd01c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 af5c6e57614ec4f9d6925df7936bf74742bc36196c414750331427e35b5f598c
MD5 f744c447b61d239228d88bba9c95d405
BLAKE2b-256 3a302cac863f34bb4ea73c5ca2e5a83051a9480aa14730df261abb32a1c7eaf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e29136149574648a65f2fdd12ba9089a5e3268437031fb305fa9d19fd8955c78
MD5 d72c829b722f93b567b3f7dde90a6097
BLAKE2b-256 50dc12f9433f8eed2f58a6072a2a706ab2bf788f872d75cd81544dda7f24c862

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 49947b7dfd159aaa4c405c630a9ffee8b5a2e1c10c7b98370f5b207b22d8ce7a
MD5 fc6a6a93fbaad63614c34609cc2a436b
BLAKE2b-256 3dffc099df3bc02df124b9a428bb30d6f0120b0c8fbc5c2abe433994acf530ee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.20-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.20-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 8046556e4d0cde5a2492eef5923e91a0666a1ccfc093099985206d2e7bf4f308
MD5 86094de294b3a1c2eb45d9f3437ae2d0
BLAKE2b-256 e9474f30927e9a78b424fddfe47420f827954e7f3965ae2be440eca384e56fe5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 87a7605e8f5a907521a52e7e4764c4d91b8b129686b63a74b4390d774198e06c
MD5 face0f8b94b7efbc49adc6d3f75922f2
BLAKE2b-256 665fbe8ffc48e8ffefd1ee097bacb2b5ddda45bb27095220e8c93d4550580f0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 95c3de3d8eeff100ea827c8b92c9897238e0483ffcfd52f4f8e2ae5140cdbaa8
MD5 589ea90433c7af153a3eefd9a88b2efd
BLAKE2b-256 93728e0f9b01bc06539dbe739eba7705bdeb2e30657c45fdf1fd8c47154a353b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30de92544a43ef849c643d75403d137d629325fff03292e9dde31d8dd6c0337d
MD5 e1d1765a837bd0ba8d630a544ab71410
BLAKE2b-256 51019af369b7a482c0939fe9166c91ad4e2ce85ea3a7978ccd240a03c7fa4748

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c31f8cef01c9175e99d22abb7281fd89125fb2b7c7335e774aa68d28f15572e
MD5 04e1475c1386d171f983d6bbee7c340f
BLAKE2b-256 a57c8e7084534091e8c97d84e4429cb9eef2c24c9e93db58fe34d259242d5563

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e22c5eac14f99b98b5d39eb687b6802c6c9cdf4d1982cb24550602ebbbbae888
MD5 49185a260b5394506cdca6ccb190bc3f
BLAKE2b-256 a109ab942b0ff07768419d3a4b936a3b3ff4d79784a7939ce166dca84e827fb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1e40fe318862dcce4f23db67d7a3867d9c04a06cfc21bb647fac1c2cf0d2dd26
MD5 3c73e411306e8f179aca1da170285173
BLAKE2b-256 61da906cf8211c0bac78e6875dfa424971b4e672c676bfa3aab4a3f5e497bb7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7905f4c977d11a8db86a03fc78f8ab593eb25fc8e9ab0c9529ab609088073660
MD5 200f144708c8638750ff3afe5b9a8ada
BLAKE2b-256 114c562d8e31d4508d09451331a50229c1583a958f0c164a1b89f355f42d9afd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4d64cbe176c6cc319575a09ebd3a89317ab7889ede298710153ffb2f9575c85a
MD5 b4935641b1c2ce43b4414f64031d895c
BLAKE2b-256 7bc91073153804944ba4320093cfd20c1fbed59fc5fc1738baa8cb65c037508c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.20-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.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 aa572408522929f75e3e1dddb576f8fb9bddb4cf19efeb912cc70509e8712e91
MD5 a831a969c0b97c6d65e9abe888cca2b0
BLAKE2b-256 e045e3bf5c0276a9e4dc3b45650450921e10abb08f03a9de8055169fe498c8bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 529cfdb3802ce66fc4e32c4170b740cf0d3c3c39d91b119e89ff4826a8cbb2e5
MD5 8961e15b6d5904ab635ffc940ee53d3c
BLAKE2b-256 f473181849e8e6d58340aae398c50e02ab45a92bfd761f808e6ee2d28bc6d46f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 27d10342358d5e14592361eb7c38b05ee0daadf639b5d50cc1c198d5cbf71cf3
MD5 84e159f45a905f7a6a17dbd24ce0b1a6
BLAKE2b-256 6230bedac8b9aa2ac3184fe7cf8adf1643a933bb795ff02ccddd200a77206763

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca9ff90ce61748fea6d4a7cbb71de9cd819b00c1ff955bab8826b42e25d6bc47
MD5 2afc57b8e5ca8ad8e47f26cd849342a7
BLAKE2b-256 ba7a3de862d23c1bf3c5b96289cd28edaeee181a54603e82d074fbb38a46aff7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e41fae9f09cb4110e936ab62ba732cef9777f450ad9551bdeeb149c323b76c6b
MD5 0f7e65c0c1f0c58e79149ef495f8ace7
BLAKE2b-256 c354bee4fbaef00f7890f8290983c5c36d279df647f28aabbea175124168de79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 611330097928fd1d5ffbb614866a71f5a5daca21ddb2e84ac7dbbd01b206ea78
MD5 dad45e3c138703fbcfe165919673fc65
BLAKE2b-256 87ed06d9cdf568fbd75e287e9732dbf9656bc670663d0fb34a53a889bd3764e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 df31e775d68d940e12fd363de71974d44fa07e3a1147058265541eb2605001dc
MD5 2d5064c6ae8f268d835ca54b77bf305d
BLAKE2b-256 861fefaff358cc060047354d98dc010130ec3d0074bc9d6ffa227ef01b2a3860

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.20-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.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6f37b49d92ec26e2109e020e398c553d1512a93595fa5171b523cab945467b6a
MD5 d1c975ea27f963572a6da07eb06b36e5
BLAKE2b-256 d0eef82a9c0e9eb232c9b78086ab43a2a7ad9a98d0e0ea36ced34a112524519e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 24ca6bca117cf4dbc92b264785631f43c3e8ae28e9f537d21f74008e6199a7e5
MD5 40eefdda614a95d1a6ceb6ef412310d9
BLAKE2b-256 6bc21530e3ec1d53a21b1457b66c9c3726441758ce9903bfb7c664d12b5e635c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c72e2d8647385838bb71a805e4bec481c038e0673c208451bc5c0f4fd4ff5fda
MD5 4f0e97cb9494ea6f1f9ee287b652edac
BLAKE2b-256 49eb12578637f95742f3cac1117183053a4413bbb952db9a7876173dfae3ec56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05556a38e237ce65bd911ac4480937889b8fc132743e04c8a6d2c6215925fdcf
MD5 e30d69805955707fcc4bbf9af28bf98e
BLAKE2b-256 4ceabd52bb9666ca3dc93274b407ede8b07d10c9590df90e0d4442696acfea21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7db414021e64097c46219aa2559837b4bd5a3e5861091faae6f86e7cff1e0788
MD5 3dbd9945389ed743896da7072227b855
BLAKE2b-256 3c6bb83a26016ac2ae8ee16d34cad4726d488e73862e662b67df15e0cdbbe5ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0f91593cb295dae60c19b3781aff5df39fe561657735d866b7351714d5ff38d
MD5 f0059d0e5fd5d65a97fe7875a6ec10d2
BLAKE2b-256 c02bcab1e4c2860a320ee8350f583ff7273ab533cab065a5ca79fb55dfcfd59b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c897c306be368771a7b35ebd12dcbd8d803c85f969456917ecd0c274d58c199e
MD5 8b1e2fd83915271a86c0f2d18185365e
BLAKE2b-256 03f219e39bc4d4258887fdfee9d3142883f7b3264b1c3a15d3ae64387df87486

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.20-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.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 63d9882389f95de15058bd992160c7a2a4781515d106cc6efe242c850c90644e
MD5 ab8bc1b854ea8a78bc9960be26473f77
BLAKE2b-256 efde5bae64cd98812b9e75cf0d76442c710ae15c0bb5a667b25cf9b52ac6af64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e4250f6692fd2f2b8badc60f248bc7a13817215f2a82df79e8fd9199690660f
MD5 d3ba5ca6e71f5ddcbf48186f336625c8
BLAKE2b-256 5a7855cd4e381c125e98c0af78de433f36b3ec439fd9845fa85eea4954c95da9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9f380b2b0e50bf46630ba4520c8e1ba8285c473a35193bc6f52b0a44baa8d41b
MD5 0df53b73db5a8332c8e477dab60bd3c5
BLAKE2b-256 8a53b5ea10afe9270cfee4e40923355856c79451a4b73ee664aea2c379a49a45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c4036e510e30d9654a9cc2aaaeb6460c25d3fecc8f1c4ffc7d0008a509c4b52
MD5 5baf73fb1494e1acc8e595bea0d407a7
BLAKE2b-256 4aec93b34cee1dbf4ea4965c177f4f9a3d4dae1bbb0ad5d348168fb02e0887f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a2cb4151dea836dc6d9151c2e297735b5c29a257f1d50a0aa5c0edf21f18792
MD5 38b7d1264d44c56281afbd305ce94000
BLAKE2b-256 d8610404fdb4f62e2e894a516e175fb13be06f49a5a2bb9fcf81a0c3307fd8df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8a955511c379d4bb7b7641d6bbf95262d189aa4e79f65e1a61e71df49c79b20
MD5 89fe3cf5f8b60179bce68789e789015e
BLAKE2b-256 565ec67545a4ff7d4b1a986956f37c9c979429a3414af51c723bf2b099c22e7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 393dad7db2e9094268a6d9bdfb7a88576928b7992e1c5c7f08f5c8281950daed
MD5 5cb19a2fabb2bb07584abbd129b25c6a
BLAKE2b-256 727c7d7a05ce7c19ed5bae8de3919f9bf8d3a917edff96760375b50a02ca295d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.20-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.20-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 27755dd7c1f73e3d856882523e5e9835ad2c564ec4cce206adafee05404d8f87
MD5 b4010a7fe2672f512255850168b60626
BLAKE2b-256 a0fa26c79ee3e5e09a9d9c3d72157cf9fc83e88df72af676edaf263627c62790

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3bc6cc631abb668ef405a29f33a05e6fb4500ae0abdeed81856e111cbd0f537
MD5 e1b7ba533679bc9fc04aa2c2297850f9
BLAKE2b-256 024e859fbb39671f221699432dc1e41490ff8e3aa44bb0f549c0584368a90ce3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 de93f4ec9dc2c99c359b487abb77ba79db2b5201b9e503372392124727010e74
MD5 6a14bb0a563726fe2e6f98786b6c435a
BLAKE2b-256 da7f2f4d724f3a99b37095b34b1394cae76422f4769809fff33f3251ad672932

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71f7ab530ade5be7c672fdb75ec02efe8ab8f4ac1880d01f5ba695a661fd3e49
MD5 8eb5c2de4f88ad2e93da381a091647ee
BLAKE2b-256 727b6f5f30e89c67dff1d1eb5c8c6b9dec64a09b2908f177d30f1695d9f3c90c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 971e151ebfc82ebd35d9122f3b289279ec1a2f6d62e8f92e18ebf1dd180e5bbd
MD5 dcbea2262fd69a14de4687a01fceadd0
BLAKE2b-256 dd7a119cb8b0054b3a1ca9c59eb2971cc5ac5ebb4991f97a03982286569c1dc3

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