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.20 0.19 0.17 0.18 0.27 0.27 0.29 0.39 0.38 0.40
50 Sequential GETs 8.12 6.53 6.17 9.19 11.16 11.84 15.51 26.97 19.03 20.58
50 Concurrent GETs 5.61 7.72 6.45 6.53 8.40 11.34 16.50 12.68 68.85 21.89

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

Uploaded PyPymusllinux: musl 1.2+ x86-64

httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

httpxr-0.30.10-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.10-cp313-cp313-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

httpxr-0.30.10-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.10-cp312-cp312-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

httpxr-0.30.10-cp311-cp311-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

httpxr-0.30.10-cp311-cp311-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

httpxr-0.30.10-cp310-cp310-musllinux_1_2_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

httpxr-0.30.10-cp310-cp310-musllinux_1_2_aarch64.whl (3.3 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.10-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.10-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.10.tar.gz.

File metadata

  • Download URL: httpxr-0.30.10.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.10.tar.gz
Algorithm Hash digest
SHA256 ac7580f7f033ab5d437afa28a75094b019d056a3c3aa5f8f98c4cb6e7eca0b91
MD5 d4762d6b713216857c956d4ec278a81b
BLAKE2b-256 249e6293a8cc1a5b1d8e458f85b10055f3850c19739d67cfa58453eedcbe92df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c04513bf819361b93dd49484a676f45aab89c322a88e993d32f76a91babce36d
MD5 944b6bd6e524c6bde3224d717ff4f46e
BLAKE2b-256 dd62be61b195006239213eb62c507ff9160d363c3f5c66a683ee05fa1b3c6c6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2bc60d5cb552b905f845bd43a836218f9a9a86f092d3f1384d57b49947e5a1f0
MD5 8bbca194af466d85f07a3deb43dae86a
BLAKE2b-256 a1d3df3deb0c8c99497d9d9e9d4fa641507e6c82ef33239639d3083bb367715d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15a6a55d3cf982c8f8351f4c98084a4cf24beb5d3fb07971adc07109494933ca
MD5 9b6a14187a291ff52d48838d6f8e827e
BLAKE2b-256 2e8ca0671f1d9ba90df32daf6273163d7c7dd9697c752e513167a7d242613b86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3f5d9a64b480ee778ba271693923be35c9403bc824767b2dab2e43c287415100
MD5 51893906963e641de22554f7af192d8f
BLAKE2b-256 6246e0ca920e7328a72d8f4df45ee775bfd4f8d34ff039855a05f442717d37a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4777a0e834ed14a3d97b953c905080a607636a424a525743ecc213ae0d19a4dd
MD5 6d1b2ceec3486ae8b39e9321b7120752
BLAKE2b-256 9fc75604acb2dc056ad5f2f2233b3257052d543a4579d042edb583073094164d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4ed064936db0ea80ef450d545e241bc078b770f3b416668737db55b7df465b39
MD5 64d576411e6a2bded76e3a6aaa8e4173
BLAKE2b-256 ec2ed7d3a949f3082a88e56e68f84609bc7220b45e2a727422040c4782ebde58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.10-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.10-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 2bc0d32ce719378f0d54877f6363921ec0f6407a2edc1536236f65227a62b1a2
MD5 ac44cc86b8d2f891a7a0774bc99b4638
BLAKE2b-256 eab1820517e53924314f382cbf9be48bbd2999108d700ef7dba948c75436bfbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 71cc9dbb53ad5e17f7f10c20deeb26ca87b6589615cd665d2ee2d1edd9b2f91c
MD5 bc4b647ed6c72566c675264678871f84
BLAKE2b-256 22f489eace1b0a8483929db7fdaba7cd66cc22a166abe9def13fac06fb662d9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6b5a02b4706d6848bae2ed5167634f1ba60d7ee58646c5db4a8778f30d0c9a8b
MD5 fbd32ae76de24887bd20c45aa8a21aea
BLAKE2b-256 80c9786a380feafd0099b442a77e262ffa4de7ab5191c053a3109e7bd0cc39e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4bfc20318445bdf81fe9494571227d6c4fdc52d1ea926848224150e19889785
MD5 f67910ef656c67a9b1e145be5a05c738
BLAKE2b-256 2380cdde490d9bcc54baf33dcc3281e4b6830b3556f58cef8e3226847731c100

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca80947506bb2465408b4418dc2706d44f22c77a0e4de21fe35f6c796485b051
MD5 26ab79283ab354ea7f631123a5fa3c1a
BLAKE2b-256 bc11db5581baaa6c69c6796cc9e4c51638dd26a5042152ec2587045fc3cc361c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e89c0f9256556439d8c567beef8fd36e07a5974d716d4bf015f1ee7c6e6d0c7
MD5 aa88e4d7d8b7d6f309ffa7f84fef9259
BLAKE2b-256 b983dd4f5d24809d98cb3a221a19adf9dfb729dd9601741a4128048dbbf6e977

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 79e8b58cb8697bc24ab27d639013e98b910223b54fe94f4ee5979781f870fbad
MD5 192e8dc86900374f45f55e875056cab4
BLAKE2b-256 dd846f9cf603ec47a0489c981d140be27acd69d291c4683e1af2fb24f70d01e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 60deb2fd831c256afd129584113f8bb5c51aa0bc1becffb0103dd492962b2299
MD5 e1588f7cea4d783eabc4588909a63155
BLAKE2b-256 a4ec4925b29373221dd18723b6b6e1df733269077c49b7347620711c435e98db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7c35d44f9b1c1a88411dfdd0b5bf58f80a4ec61701354909a2d6337ad0be2da7
MD5 2f2c1aa0ecc682dce6b0962b57b6ede5
BLAKE2b-256 87010452a287ad1f68037fe20605f88e5a89ed163f6101c92f8c97fe6c469497

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.10-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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 43a2fd47789ee92bb09f700a9d43b003d3952ccfcc6e9bfafd4aed5310b5ff65
MD5 15034396eeddc4f2eefb4cf29c51a3af
BLAKE2b-256 7f02b9fae6043b727e82a4b7460f31163c201827b6eaf8a35b920f2a4e1fcecc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 95275d0a316cd760d9f0ac79a03f6c806cbf7195f6a8b29c7302753d58cd37a7
MD5 1e055a4adf68c8fedcd173e2f35295aa
BLAKE2b-256 4429515ad69e0e89ba54a94087cffeb8ee0a764ac16e92340646cbef8c9b9750

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ab0291a195fc5bc4004b263c554e04fe1852c212b6a5f248d61543744de66bcc
MD5 52aa5a4f662bee87bb3ecb588e75bebe
BLAKE2b-256 40cb1f558110df4fcf523d9f8b684998f11a524f392d371175966ef512330e47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f460b5de61839e83823de9557ef9181f01a0a35e8ef0d0f797721701e87d7f9
MD5 7ec9cf6554014492aaec4dd6ad274dd9
BLAKE2b-256 41d9e9334f52c91f74b12068e85839d8c9c48404adbb477a2338d54953e6171b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8792d735d71904917ec1d1d9b1290bb0d2894eb7823bd84f70de949cfaf86a16
MD5 79731ab4cf3df9be032fcd61fc04c4e6
BLAKE2b-256 1fc69d6f79eefc598fcd3bae53689beefb559c77b02f846d2e026133583e3eab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9bb4a78159bc48bc3f88d60e2b3d42674c2080912abc26ccf65fbb518bcc9c2c
MD5 677198da2ab9d0f1cc844b6178ab4165
BLAKE2b-256 1f4dbe3fa3ae8ce4891825d5a07f02c961b4cea20b4835f21dee753fa5012845

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 602a16c49c7883f796019009bb39aa266a73cb7ee415029cbb128b102721c42b
MD5 3fbaac317b86d6c8d9bdcff00a50ac96
BLAKE2b-256 dec3f7d0561f37662ab21d8bc8848f26a54cd5841107679c2266fc8e24def69d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.10-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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2bd4357b2a0e2573d0165c799868c69ca619bb388eaab6edbe276fff5213560d
MD5 c26d1b970fd0879417116cb9158d52c0
BLAKE2b-256 9efa02180389b90dd49b310c70dcf89ddcbe9b0ce11f06ac7496e94f7c8c3caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d34ecea91dfd4239250ed3f25f4fd92c4f7358fe5d2090f29f99b5737237d5d4
MD5 bd6ae8e3cdf3b372a8dc4c8edc8d54f2
BLAKE2b-256 0e037f2c6e606597a2ab7957246a4d10c59d29bdc042234919da60031df8d13c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3eec8c0eef3e343c1484ce63c18980929447557253418cbc87814e2aed4c6e3e
MD5 b1f29dff446b7065504c0edc1b3ea044
BLAKE2b-256 4ff5f7fba5a4c288101e8f1d891b4e02b847ffd665943c6ae445458f3f1ac69f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 358f5a0ca6185ce60321ddfaca33e2a4bf5c9812b92c8e9e065d42bcea95e84a
MD5 8de4ff7803df8a5cf0d1e327e92cf8b2
BLAKE2b-256 63c8310da8219d191d56fc221835e6b961676e3069cfaea4c38dc056842ef049

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a802e3bfc67926c669a83f0df97a4025f4cd2c6a1bcf639fa32b8377e9a0126b
MD5 8f0aa35a24ee1244fe9864bbfb7ef880
BLAKE2b-256 8874f75fa61ba6713c5acd7e01d3a26bb6697e3cce1282aae541a90e109a1da1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fce4ca8b21e829e02b148f73a6a8361a6f9f02a6ed7f3b08692db25ca5784b5
MD5 b039c8ae300dbb790a093ac748c228e5
BLAKE2b-256 91c12dafafbfbd1b0b6eca3a625b8cac7b77390da91ff2b18bed306eefb9fe8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0134043279000971cb9ea0a6e1a09c1d93dc9aead7cea606bb8d4f06f6fb650e
MD5 188048a2d270dca27db7f557b9ca3f6f
BLAKE2b-256 89b1c2ec3004239b8398c04dbd438b303ed9a100469e9841b53d92f14d31ec4e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.10-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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f08ca214346e7116bbc38271341efd6c8d86de44c35622e1ae59f24052894fcf
MD5 487ac085577649127c0e1a602c9550b7
BLAKE2b-256 cc8a370c9d85250998d12472e3188ed3739cbc8e4ee2a72830a4c1b3a81d54ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c97a77955aeaefe8e0ac018b64fda727b349b44f54e828e65384fb866bfc238b
MD5 6aa20a2e8574044285898ff24fe8f311
BLAKE2b-256 271d56af2e6b03d085444997e8a3be6cedeb6642c35e77fe9c8a9ac720da7365

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b180180ece309a87265a00526117b0155fa750061af37e12f241d2f4e7fea4ee
MD5 d3fcedaf552cd173de113e61558ae179
BLAKE2b-256 01c9e7fbc52ae383c5bba76bdc6e7bd68cb62dc951a6bf7d8c9995c1266cd1eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3211ccdcefcfd0d8f04177dbc65f8cec7e437eb8427f6442fc5e669f2465d259
MD5 b2962f2ab64c4b200edc0bd01e2e0fca
BLAKE2b-256 5138005ff8685f7d8e2ebd37c6347ec7b5e89da6975b44f61efb578097eec198

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bb0fe80a4578c5067b2e6cfd7ee04b436c6db39c98e5d1d8af68daeb7d15d331
MD5 91a923a5b94df22c744379662a48899b
BLAKE2b-256 31d7658e6b6433c26c132d2d9bc8538e2ea6b70e8a4cf5a64ebe00b5768a00e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecc1210cef87df10c9ec85183dff7e1e5ae57957d5e72c39a9e3bb589c46503f
MD5 81fa7194c53098a888f7d3baa8c317cc
BLAKE2b-256 2da5b934328d840b71185f4d719a35f4790e0a1bd5d626ecf9964ed348c28e64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 479c233c6fb74eec831ddb714b858e44f25811275b1f0935800ce8af6ec5297f
MD5 7c944ee1eb7938d784e92d21b8dda3c2
BLAKE2b-256 e4c35acfd09ae213cb02bf2966a1f704343ea806af6d88ec2d86132d588ab99b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.10-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.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 475dc7b323a4d210f03b64145119bfb82aa4b25f402431f40657e7d40b3be51d
MD5 b166d43105f5835c475eead3b4fe374b
BLAKE2b-256 6cceb6022c9cd391eead640d11ba8a4f304121bc61683b24bd62cb318b8e3133

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 79ca41c7dae24e8d45ae047fad3dc5367f1e704df4607f5587d7ae662004a018
MD5 0724b6a60b8ee32bbc1ff8cccd4167d8
BLAKE2b-256 281060546a10853061ef5d918b466c114abae2e0258b2ebf03e56b5b2bb4a4a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c6e99c9f303b91223e369d43e246a317514cdfeea1430546cc1ebb5a7e180389
MD5 94f055576d46c24ded344e13a7592512
BLAKE2b-256 5ddc4a9063922ce604740e351808e602d42de0df081522aba592fd2eebc1bd46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 edfb15129b9fb1677fd5d561c7733b22508c73c0f127babc0c95756a3e583de9
MD5 67f49771263ad0ec32e8ec803ae8814a
BLAKE2b-256 8ce6388e07b799e04d75bd9a8e0f633d7c202a1c8dabe53131d205df18ae89f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d60b12e1837fac128dc3f55f5edfbc88c3db227f7c70250d2462fe874a6ac43d
MD5 17ff9ad43692acf0a7d70f92625ada35
BLAKE2b-256 ce2bac36aa912c0ede66e4b987316e6f9443bcda115a514f64c39b87ee151b83

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