Skip to main content

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

Project description

httpxr logo

httpxr

CI PyPI version Python versions Docs

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

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

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


What is httpxr?

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

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

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

The networking layer is reimplemented in Rust:

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

Zero Python Dependencies

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


Benchmarks

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

HTTP Library Benchmark

📊 Interactive version → with full hover/zoom

Summary (median, ms — lower is better)

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

Key takeaways:

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

Why httpxr is slightly slower on Single GET

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

httpxr returns full httpx-compatible Response objects with:

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

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

# Reproduce benchmarks locally:
uv sync --group dev --group benchmark
uv run python benchmarks/run_benchmark.py

Quick Start

pip install httpxr

To also install the optional CLI:

pip install "httpxr[cli]"

Sync:

import httpxr

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

Async:

import httpxr, asyncio

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

asyncio.run(main())

API Compatibility

httpxr supports the full httpx API surface:

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

Zero-Effort httpx Swap — httpxr.compat

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

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

import httpx           # ← now resolves to httpxr 🚀

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

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

import httpx  # uses httpxr or httpx based on env var

Full compatibility shim docs →


httpxr Extensions

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

gather() — Concurrent Batch Requests

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

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

📖 gather() docs →

paginate() — Auto-Follow Pagination

Automatically follow pagination links across multiple API responses.

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

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

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

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

📖 paginate() docs →

gather_raw() — Batch Raw Requests

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

paginate_get() / paginate_post() — Convenience Wrappers

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

gather_paginate() — Concurrent Paginated Fetches

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

📖 Full extensions docs →

download() — Direct File Download

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

response.json_bytes() — Raw JSON Bytes

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

response.iter_json() — NDJSON & SSE Streaming

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

📖 Requests & Responses docs →

RetryConfig — Automatic Retries

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

RateLimit — Request Throttling

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

📖 Resilience docs →

httpxr.sse — Server-Sent Events

from httpxr.sse import connect_sse

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

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

📖 SSE docs →

Raw API — Maximum-Speed Dispatch

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

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

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

📖 Full extensions docs →


Test Suite

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

Behavioral Differences

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

Test Modifications (6 files)

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

Development

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

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


How It Was Built

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

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

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

Phase 1: Correctness — Pass All httpx Tests

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

Phase 2: Performance — Beat the Benchmarks

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

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

📖 Full development story →


License

Licensed under either of:

at your option.

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

Project details


Download files

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

Source Distribution

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

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

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

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.14macOS 10.12+ x86-64

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

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

httpxr-0.30.19-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.19-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.19.tar.gz.

File metadata

  • Download URL: httpxr-0.30.19.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.19.tar.gz
Algorithm Hash digest
SHA256 b4304751e02541843a0080badcd2d5bcae590a6d2fb9d4e192da8c512d83c34a
MD5 f4fabd0f093eb7af0504bb6364695546
BLAKE2b-256 979d353c3b9ea1145ebad25b7619f6e21fad4c7cb71585094e90eba19b560633

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e4d6802b61fa06d9a47d70ea34c504df317591c952449078b58639fb523704b2
MD5 0635f29560db32b1c955753efa3fed74
BLAKE2b-256 5d4924f0afb9783081797b0f602d42c2cf054e219a8505219c8830ebf3961d41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9abdbe70dd7229f321414a6dbca123101255e9296b53b1adc6f8e307f15ee7be
MD5 27c8dbd92841956c50976e5a51d84bbc
BLAKE2b-256 7b4989e724c38b0bb7dc09b3e9e9caf61502046952e4ade21edc0b8c0143b15d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d29dc0f16e9dc296a5d38798f18baf4a9247b368324448dad395e2fbefb4f9c9
MD5 0da813f3b4c67eb2c3ba02ab7174113d
BLAKE2b-256 45f250ffc5c57b9c29cfc6cb7e9c6236ede2b153f1e1cf9460ab5754c88d7b01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c781229fde2e42bd1ac3732929b5a83670ff0b5419c2a9ff13a105eb09aa7c6f
MD5 b514614da1525359a4235964ad6ed3eb
BLAKE2b-256 27f30d6c477cbcd407458d8a6b796340ba3d8a452875dad608dfec4aa16f042d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2974d2bf94385b27f2ad4abb08fe5c1b2a4a57a298604c2a91410eb4f061eb2e
MD5 3f325570bc540598c13285e8ebbd745b
BLAKE2b-256 3749eeb3955731d4fc291ac97fcb16d4c213e35d6f323ef4f19a15a95944e7be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a201e02d94d09e763f1ce8cb6968b03fc2c679b8d98d5b438480f231405e044a
MD5 449111867fada0a988fdc996ab540593
BLAKE2b-256 12df7c783866e7b5d05c706fa43f54c118a9c1525b78f064da9b806122e67879

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.19-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.19-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e16c2198ed50287345b244f516172d022ca88f3d69e567bcb42830dec2ffd92f
MD5 94b0cff66dde1e4f15517edc42549656
BLAKE2b-256 e213314a3152305fe87f793d5c27637fdaa307f55e8eff2705b481794d08da54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3edb9063f56a6903c9f4a2d2270624c2681dbc7ce99a03492cfde49062817ad2
MD5 1607b168561ea5b685262f6a1d3dbd0c
BLAKE2b-256 e5c261f7f559b6d0fbe344311450eb55abc892050fad3dafa98f9d424bb26e3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3af93af4a8c26e87f79cc4ee980619dea06a5808bf38b3e365613c26f338a669
MD5 1e53d4e372ddf629a193cb53bc7d27e3
BLAKE2b-256 f3e4991d8fe575b2dfd347e12101e0eb84beddbdf77dd840be505afb23b69816

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 562641b2fed0bb8b09bac8b40a7287b87243546becba9b0acdcf3891ead69996
MD5 eccee770cc30d6e236cbbbec1a0759de
BLAKE2b-256 5185e1b77eece4d08582f2eb4386d23a35aa2ef7c15d7c89ef51f9473e4ccf04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8881764c14d505d1d63afe04ecf446859ac57c10c43f2c6b80335c26d6b3e1bc
MD5 8d08dc986bbec7231273acb676976494
BLAKE2b-256 20422828a1a240af9b2d853a3a68e9494d55135eff48008045259e9a93622bc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dd8574bf911d8eebf95c3ca1acd3d9bec0e2d92c2ddaec0fa9aa37603ce2f08
MD5 4d8d55f7998803b41c157dbabb4dd1ba
BLAKE2b-256 56116c213372899e03ef55e6ffb08c30d7b9a6d6fb7fb8b21561df168373ed57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1bbd0c94f71317be5923c5a9e2353d5b11937c2f3f126cc8a5b34290595752a5
MD5 937e4473501c24518dddf2c10565570f
BLAKE2b-256 e7e8f7387fb46e5e098df9be36c41e1cb3a7ddd6ac65c3a39c54a80bacd82b49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5795386ed79836d08782adfec5379f7dd08c91f0904de22fa05136007db120b1
MD5 ac319242213b244c43c155a0d965a72b
BLAKE2b-256 1203ff7e6d73e5ad05504314fd80d40726308a3fe86dbbc8be6eced1cf235096

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a1456adb55416fbed2461fcb731d200ead96956abdfed322be2787837ea2d327
MD5 8fa719d6d8810ee8b2c456dcc0dc4fde
BLAKE2b-256 a45bc18709e36e8235bba8831a0c6137eac4a28a6ecbc30f1809f2504fdc7aa0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.19-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.19-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 36d5a39893a6ebe9cb05133a555150fe21958a2b64fa1cd53bafb8126edc059b
MD5 2d9a1287f1b280629c2440e211b5b358
BLAKE2b-256 7a695aa6da9fe12890354d032fc9a4677f7ffe6a37eeed1e54b5855b31774b64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 08358afb27b323c8b30ce71528813e3b7055112786cc6dd9297b5c6264fb7fc9
MD5 1a2b8c2f1dbb9819065c222b706a7c7e
BLAKE2b-256 322eee1eabc67516bbde06496d3e93d01906fa78cd50801192dbefd2eae8cb7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 111eb79bbaedbf818bb90bc63518c0b3446b077b3948d6924ee02e26060857de
MD5 d357c987f60cafad84bb8bcdfea77973
BLAKE2b-256 7de60359a32a710ce62182085736a8698b657250d4a25947a280267ec89a6e0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1275a6cc622925cb721102583f299e5526b8c745a6fc90a81b9af4154dda0b3d
MD5 c779c24e829fe276b356e45ecb7a43f1
BLAKE2b-256 272d9fed6710eec7b340f371e53f43b8387ea8552dbc26a68251c336f45df99e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85bd84cf77e783f63bcd1c8d86135afdcd9d306a6185cac0682c515ab0d88505
MD5 31a9f08196f0b4c4d2482e7d0b5b6f4e
BLAKE2b-256 0e621340ded57ae67f9daae10cd364f9b3fb1452c00323af644d1a95b9a8db4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 251bfa62f12467036e69f1d21dea79dfffdde5c03c12a7f1f66f1983612a27e0
MD5 e07909c9781a3c67d31e58045fe9a422
BLAKE2b-256 387424d1b4d0c38942481201d4121f25ae25672ae1428dd8c3096084572010bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d70879d8d3b1a5eafde04c97eeff8718c44c5c8012fb5171433ed8682acc4391
MD5 4870fbfe01a704860fa161077417b4de
BLAKE2b-256 01c662dc09d6c8a7fa2d65527c2e256b2c5788ffaf05c5c2addf37d9d3b7b72b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.19-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.19-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7549fa4237079b66ae4b9a57e935533a4ced4b7a855396866fa8228be00a599e
MD5 48f27ecc59081c1e3383b4d21a564af5
BLAKE2b-256 3ad606b80faf5f137873e5b3846f817554a5891479cca9aca2bd213b6f896c19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 729d8bdf01fe25372e0731b55a0cab30374afd98dbaaa83cc5a2c1ffcc06d110
MD5 22ac48cdb89221cd2d846f5aaf665bb0
BLAKE2b-256 51205f1cd1defa1c3a7019b830147580d500a0670b52ceeb97b29938d2364d72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 abca4f81467007388986f2037c3c36a9c686439300479be3fa3066b74fc24ca5
MD5 b0af8b94b923d4123690a5a327f6f080
BLAKE2b-256 538176cfba50112ae937b37e41a444e779357eddf2517b0f3fb45e003a72c664

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fbd70ab62fd458cd22cd94f366dab97224828f58e0c8f7656754e1e3d3782b3a
MD5 6cf68c8d8a63a3c05c7f1974aea87b8a
BLAKE2b-256 465e2787a0c9421cb60c7c811c22d56a5135b9302588cbe58255fd07518fd474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 195832d40ccf1964f77178ed84af640510513124c4dfd993557183aeaf3d62c5
MD5 c1b98841333cb64adc51cfac4d1e7211
BLAKE2b-256 920d36e29065d1f52e8f5b2753c46d5bec70fa178d4e665fabb40700034740f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9172e1ab9c9daf2beef198c32d3ac1c926a61e2e81186d8eae9885be562d406a
MD5 0fdda50a23e0382b4998def69445713a
BLAKE2b-256 dd15791733bc05d55fa2150d6b9cc100f3a469b9d540b8af179753a5f35cd8e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d9e422028fea4eef0c5672ef7fc6a9d47b19d85b98928003e1ac2e8cc70dca0a
MD5 37f6aa4676caa1c878fdf27aab4516a5
BLAKE2b-256 12ca3351684ba0d3d59fdcf72b6704498f40e6cd95559cf2715e3e301225e1e9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.19-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.19-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5703f9bed9eb188d686667a13b438535e9b75f020772660678fe4d2c1eda3378
MD5 d4c2efe09ccab590fc76cf6f61ab67aa
BLAKE2b-256 df5f6ef278d2a0e4aa8edb8ea7e4e5f5b0d61c663154f96361a1cb1fed4f2dea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bab1895be64e23af0ff102994b531f8e685e7e97a69c1861268a0f668adf68d9
MD5 d624d15b81cf5a0cc5f40e6070edaac4
BLAKE2b-256 0ecc529a8bed712e3e3926612bd94b570b15d7f3c6a6703509a388671a7f12e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f6f3d236733a34114422974dab431af2f62428af64e9014569defd5ecfdfb8d1
MD5 33f8d4d1a0585b4a4d982caaae376dac
BLAKE2b-256 05183d63dfe65776400fee1a8eec358921b23d4b6ac34e45a012770b51eef773

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 323e03d18acda2a7919bc06fa6a9086fa06d4ef1e3741e25322ab12757233a17
MD5 e0c5c9c065a20513c04ebc561c213350
BLAKE2b-256 85de7ddc59db39ce5f263267a91c6e9de6fe5ecf1332f2e6a9fe499cfe49ce97

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 19a58fee0b8163ae61dc817e79fe00e6063bc3035774c763c8cff67b6f9d8fa3
MD5 7f30fd586f8bf7189668558df03473fb
BLAKE2b-256 82d66841281a2a089835dd78abdaccdf11450c54d8a7dbb6ea337a0b6fbd414b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e000007d9d04930994dfab9042b0971fe3429941060d11bed26c2ce692a63124
MD5 7e2a27ea6c0b7a989a80129a6e888dbc
BLAKE2b-256 95dc64e9f56f4d20a3be931a8d047b148da7a1a9b8ac717d56e8793bd65b8800

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c5dbe6c43584ff2492ac0b7d4932659d9956dc3e1630538d4a4e3b411623f1e
MD5 e9a381af6cb3e6bed8a20d27aaaae154
BLAKE2b-256 380637b3ff5b7c0ab039a78068f2d37c1be7a8c61f4ee2aefc35a91f460d3d6f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpxr-0.30.19-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.19-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4c08a6342d28c5d9479cfe1a2c5c3f3ae9a4ca55e30e17dc48bfcb11775307e8
MD5 31e0afef5107d96829bbc17f130c53d3
BLAKE2b-256 91d204e01db1ffe61c8b8eac4382be18079fc45254123e7c86eed456d55a1835

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5a156f2260c201db1ebb3eae24a0b026e3a6e984229af5734378b2dbf7af76b1
MD5 c9c43d1f536199bf90d38ca51923d16a
BLAKE2b-256 9bbd5ee4357ee259314eeaa9e3f5737798e51fe87113449bdf4213cae1acf683

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d1f3ca0293e72a14bc3bdecec63fefefab9bb5cf272d0a644022277c6c8e6e16
MD5 4921427d259d6d1e147b8f9296ec6133
BLAKE2b-256 1be47ad5cabbe0abd28ff97aeadd62729f90a07190f738294cc621d5febddad4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 37a9f713a4b0d783460e5e8b63ba5f7d5c07a4a1cde66085ce0c3ddced292872
MD5 335177eabc679c1840b45a64e88ddc08
BLAKE2b-256 57ccee63f75e0654206e9d0eb73ed433dbf8d4f45369449d0e18ad84e45fd765

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpxr-0.30.19-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52f4db291a21c34d0b4701b82ef1fcd9c900370ace49ac5fcb73693166be59a4
MD5 81b2906beff90bb96219604c8a5ba15b
BLAKE2b-256 12567bf3d40ac9d2ddbceb96a29ce8d141dacdc2b2d68b2994524474630154c4

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