A 1:1 Rust port of httpx — same API, faster execution.
Project description
httpxr
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.
📊 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
URLwith scheme/host/path/query components Headers(multidict with case-insensitive lookup)Requestback-reference, redirecthistory,elapsedtiming- 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 clientsRequest/Response— full request/response modelsURL,Headers,QueryParams,Cookies— all data typesTimeout,Limits,Proxy— configuration objectsMockTransport,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
httpxrcommand (requirespip 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
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 |
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.
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.
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.
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
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.
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).
Test Suite
The port is validated against the complete httpx test suite — 1303 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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac7580f7f033ab5d437afa28a75094b019d056a3c3aa5f8f98c4cb6e7eca0b91
|
|
| MD5 |
d4762d6b713216857c956d4ec278a81b
|
|
| BLAKE2b-256 |
249e6293a8cc1a5b1d8e458f85b10055f3850c19739d67cfa58453eedcbe92df
|
File details
Details for the file httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: PyPy, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c04513bf819361b93dd49484a676f45aab89c322a88e993d32f76a91babce36d
|
|
| MD5 |
944b6bd6e524c6bde3224d717ff4f46e
|
|
| BLAKE2b-256 |
dd62be61b195006239213eb62c507ff9160d363c3f5c66a683ee05fa1b3c6c6c
|
File details
Details for the file httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: PyPy, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bc60d5cb552b905f845bd43a836218f9a9a86f092d3f1384d57b49947e5a1f0
|
|
| MD5 |
8bbca194af466d85f07a3deb43dae86a
|
|
| BLAKE2b-256 |
a1d3df3deb0c8c99497d9d9e9d4fa641507e6c82ef33239639d3083bb367715d
|
File details
Details for the file httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15a6a55d3cf982c8f8351f4c98084a4cf24beb5d3fb07971adc07109494933ca
|
|
| MD5 |
9b6a14187a291ff52d48838d6f8e827e
|
|
| BLAKE2b-256 |
2e8ca0671f1d9ba90df32daf6273163d7c7dd9697c752e513167a7d242613b86
|
File details
Details for the file httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f5d9a64b480ee778ba271693923be35c9403bc824767b2dab2e43c287415100
|
|
| MD5 |
51893906963e641de22554f7af192d8f
|
|
| BLAKE2b-256 |
6246e0ca920e7328a72d8f4df45ee775bfd4f8d34ff039855a05f442717d37a9
|
File details
Details for the file httpxr-0.30.10-cp314-cp314t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4777a0e834ed14a3d97b953c905080a607636a424a525743ecc213ae0d19a4dd
|
|
| MD5 |
6d1b2ceec3486ae8b39e9321b7120752
|
|
| BLAKE2b-256 |
9fc75604acb2dc056ad5f2f2233b3257052d543a4579d042edb583073094164d
|
File details
Details for the file httpxr-0.30.10-cp314-cp314t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.14t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ed064936db0ea80ef450d545e241bc078b770f3b416668737db55b7df465b39
|
|
| MD5 |
64d576411e6a2bded76e3a6aaa8e4173
|
|
| BLAKE2b-256 |
ec2ed7d3a949f3082a88e56e68f84609bc7220b45e2a727422040c4782ebde58
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bc0d32ce719378f0d54877f6363921ec0f6407a2edc1536236f65227a62b1a2
|
|
| MD5 |
ac44cc86b8d2f891a7a0774bc99b4638
|
|
| BLAKE2b-256 |
eab1820517e53924314f382cbf9be48bbd2999108d700ef7dba948c75436bfbd
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71cc9dbb53ad5e17f7f10c20deeb26ca87b6589615cd665d2ee2d1edd9b2f91c
|
|
| MD5 |
bc4b647ed6c72566c675264678871f84
|
|
| BLAKE2b-256 |
22f489eace1b0a8483929db7fdaba7cd66cc22a166abe9def13fac06fb662d9b
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b5a02b4706d6848bae2ed5167634f1ba60d7ee58646c5db4a8778f30d0c9a8b
|
|
| MD5 |
fbd32ae76de24887bd20c45aa8a21aea
|
|
| BLAKE2b-256 |
80c9786a380feafd0099b442a77e262ffa4de7ab5191c053a3109e7bd0cc39e1
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4bfc20318445bdf81fe9494571227d6c4fdc52d1ea926848224150e19889785
|
|
| MD5 |
f67910ef656c67a9b1e145be5a05c738
|
|
| BLAKE2b-256 |
2380cdde490d9bcc54baf33dcc3281e4b6830b3556f58cef8e3226847731c100
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca80947506bb2465408b4418dc2706d44f22c77a0e4de21fe35f6c796485b051
|
|
| MD5 |
26ab79283ab354ea7f631123a5fa3c1a
|
|
| BLAKE2b-256 |
bc11db5581baaa6c69c6796cc9e4c51638dd26a5042152ec2587045fc3cc361c
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e89c0f9256556439d8c567beef8fd36e07a5974d716d4bf015f1ee7c6e6d0c7
|
|
| MD5 |
aa88e4d7d8b7d6f309ffa7f84fef9259
|
|
| BLAKE2b-256 |
b983dd4f5d24809d98cb3a221a19adf9dfb729dd9601741a4128048dbbf6e977
|
File details
Details for the file httpxr-0.30.10-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79e8b58cb8697bc24ab27d639013e98b910223b54fe94f4ee5979781f870fbad
|
|
| MD5 |
192e8dc86900374f45f55e875056cab4
|
|
| BLAKE2b-256 |
dd846f9cf603ec47a0489c981d140be27acd69d291c4683e1af2fb24f70d01e8
|
File details
Details for the file httpxr-0.30.10-cp313-cp313t-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313t-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60deb2fd831c256afd129584113f8bb5c51aa0bc1becffb0103dd492962b2299
|
|
| MD5 |
e1588f7cea4d783eabc4588909a63155
|
|
| BLAKE2b-256 |
a4ec4925b29373221dd18723b6b6e1df733269077c49b7347620711c435e98db
|
File details
Details for the file httpxr-0.30.10-cp313-cp313t-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313t-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13t, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c35d44f9b1c1a88411dfdd0b5bf58f80a4ec61701354909a2d6337ad0be2da7
|
|
| MD5 |
2f2c1aa0ecc682dce6b0962b57b6ede5
|
|
| BLAKE2b-256 |
87010452a287ad1f68037fe20605f88e5a89ed163f6101c92f8c97fe6c469497
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43a2fd47789ee92bb09f700a9d43b003d3952ccfcc6e9bfafd4aed5310b5ff65
|
|
| MD5 |
15034396eeddc4f2eefb4cf29c51a3af
|
|
| BLAKE2b-256 |
7f02b9fae6043b727e82a4b7460f31163c201827b6eaf8a35b920f2a4e1fcecc
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95275d0a316cd760d9f0ac79a03f6c806cbf7195f6a8b29c7302753d58cd37a7
|
|
| MD5 |
1e055a4adf68c8fedcd173e2f35295aa
|
|
| BLAKE2b-256 |
4429515ad69e0e89ba54a94087cffeb8ee0a764ac16e92340646cbef8c9b9750
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab0291a195fc5bc4004b263c554e04fe1852c212b6a5f248d61543744de66bcc
|
|
| MD5 |
52aa5a4f662bee87bb3ecb588e75bebe
|
|
| BLAKE2b-256 |
40cb1f558110df4fcf523d9f8b684998f11a524f392d371175966ef512330e47
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f460b5de61839e83823de9557ef9181f01a0a35e8ef0d0f797721701e87d7f9
|
|
| MD5 |
7ec9cf6554014492aaec4dd6ad274dd9
|
|
| BLAKE2b-256 |
41d9e9334f52c91f74b12068e85839d8c9c48404adbb477a2338d54953e6171b
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8792d735d71904917ec1d1d9b1290bb0d2894eb7823bd84f70de949cfaf86a16
|
|
| MD5 |
79731ab4cf3df9be032fcd61fc04c4e6
|
|
| BLAKE2b-256 |
1fc69d6f79eefc598fcd3bae53689beefb559c77b02f846d2e026133583e3eab
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bb4a78159bc48bc3f88d60e2b3d42674c2080912abc26ccf65fbb518bcc9c2c
|
|
| MD5 |
677198da2ab9d0f1cc844b6178ab4165
|
|
| BLAKE2b-256 |
1f4dbe3fa3ae8ce4891825d5a07f02c961b4cea20b4835f21dee753fa5012845
|
File details
Details for the file httpxr-0.30.10-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
602a16c49c7883f796019009bb39aa266a73cb7ee415029cbb128b102721c42b
|
|
| MD5 |
3fbaac317b86d6c8d9bdcff00a50ac96
|
|
| BLAKE2b-256 |
dec3f7d0561f37662ab21d8bc8848f26a54cd5841107679c2266fc8e24def69d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bd4357b2a0e2573d0165c799868c69ca619bb388eaab6edbe276fff5213560d
|
|
| MD5 |
c26d1b970fd0879417116cb9158d52c0
|
|
| BLAKE2b-256 |
9efa02180389b90dd49b310c70dcf89ddcbe9b0ce11f06ac7496e94f7c8c3caa
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.7 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d34ecea91dfd4239250ed3f25f4fd92c4f7358fe5d2090f29f99b5737237d5d4
|
|
| MD5 |
bd6ae8e3cdf3b372a8dc4c8edc8d54f2
|
|
| BLAKE2b-256 |
0e037f2c6e606597a2ab7957246a4d10c59d29bdc042234919da60031df8d13c
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3eec8c0eef3e343c1484ce63c18980929447557253418cbc87814e2aed4c6e3e
|
|
| MD5 |
b1f29dff446b7065504c0edc1b3ea044
|
|
| BLAKE2b-256 |
4ff5f7fba5a4c288101e8f1d891b4e02b847ffd665943c6ae445458f3f1ac69f
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
358f5a0ca6185ce60321ddfaca33e2a4bf5c9812b92c8e9e065d42bcea95e84a
|
|
| MD5 |
8de4ff7803df8a5cf0d1e327e92cf8b2
|
|
| BLAKE2b-256 |
63c8310da8219d191d56fc221835e6b961676e3069cfaea4c38dc056842ef049
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a802e3bfc67926c669a83f0df97a4025f4cd2c6a1bcf639fa32b8377e9a0126b
|
|
| MD5 |
8f0aa35a24ee1244fe9864bbfb7ef880
|
|
| BLAKE2b-256 |
8874f75fa61ba6713c5acd7e01d3a26bb6697e3cce1282aae541a90e109a1da1
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fce4ca8b21e829e02b148f73a6a8361a6f9f02a6ed7f3b08692db25ca5784b5
|
|
| MD5 |
b039c8ae300dbb790a093ac748c228e5
|
|
| BLAKE2b-256 |
91c12dafafbfbd1b0b6eca3a625b8cac7b77390da91ff2b18bed306eefb9fe8f
|
File details
Details for the file httpxr-0.30.10-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0134043279000971cb9ea0a6e1a09c1d93dc9aead7cea606bb8d4f06f6fb650e
|
|
| MD5 |
188048a2d270dca27db7f557b9ca3f6f
|
|
| BLAKE2b-256 |
89b1c2ec3004239b8398c04dbd438b303ed9a100469e9841b53d92f14d31ec4e
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f08ca214346e7116bbc38271341efd6c8d86de44c35622e1ae59f24052894fcf
|
|
| MD5 |
487ac085577649127c0e1a602c9550b7
|
|
| BLAKE2b-256 |
cc8a370c9d85250998d12472e3188ed3739cbc8e4ee2a72830a4c1b3a81d54ac
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c97a77955aeaefe8e0ac018b64fda727b349b44f54e828e65384fb866bfc238b
|
|
| MD5 |
6aa20a2e8574044285898ff24fe8f311
|
|
| BLAKE2b-256 |
271d56af2e6b03d085444997e8a3be6cedeb6642c35e77fe9c8a9ac720da7365
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b180180ece309a87265a00526117b0155fa750061af37e12f241d2f4e7fea4ee
|
|
| MD5 |
d3fcedaf552cd173de113e61558ae179
|
|
| BLAKE2b-256 |
01c9e7fbc52ae383c5bba76bdc6e7bd68cb62dc951a6bf7d8c9995c1266cd1eb
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3211ccdcefcfd0d8f04177dbc65f8cec7e437eb8427f6442fc5e669f2465d259
|
|
| MD5 |
b2962f2ab64c4b200edc0bd01e2e0fca
|
|
| BLAKE2b-256 |
5138005ff8685f7d8e2ebd37c6347ec7b5e89da6975b44f61efb578097eec198
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb0fe80a4578c5067b2e6cfd7ee04b436c6db39c98e5d1d8af68daeb7d15d331
|
|
| MD5 |
91a923a5b94df22c744379662a48899b
|
|
| BLAKE2b-256 |
31d7658e6b6433c26c132d2d9bc8538e2ea6b70e8a4cf5a64ebe00b5768a00e0
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ecc1210cef87df10c9ec85183dff7e1e5ae57957d5e72c39a9e3bb589c46503f
|
|
| MD5 |
81fa7194c53098a888f7d3baa8c317cc
|
|
| BLAKE2b-256 |
2da5b934328d840b71185f4d719a35f4790e0a1bd5d626ecf9964ed348c28e64
|
File details
Details for the file httpxr-0.30.10-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
479c233c6fb74eec831ddb714b858e44f25811275b1f0935800ce8af6ec5297f
|
|
| MD5 |
7c944ee1eb7938d784e92d21b8dda3c2
|
|
| BLAKE2b-256 |
e4c35acfd09ae213cb02bf2966a1f704343ea806af6d88ec2d86132d588ab99b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
475dc7b323a4d210f03b64145119bfb82aa4b25f402431f40657e7d40b3be51d
|
|
| MD5 |
b166d43105f5835c475eead3b4fe374b
|
|
| BLAKE2b-256 |
6cceb6022c9cd391eead640d11ba8a4f304121bc61683b24bd62cb318b8e3133
|
File details
Details for the file httpxr-0.30.10-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79ca41c7dae24e8d45ae047fad3dc5367f1e704df4607f5587d7ae662004a018
|
|
| MD5 |
0724b6a60b8ee32bbc1ff8cccd4167d8
|
|
| BLAKE2b-256 |
281060546a10853061ef5d918b466c114abae2e0258b2ebf03e56b5b2bb4a4a2
|
File details
Details for the file httpxr-0.30.10-cp310-cp310-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp310-cp310-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 3.3 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6e99c9f303b91223e369d43e246a317514cdfeea1430546cc1ebb5a7e180389
|
|
| MD5 |
94f055576d46c24ded344e13a7592512
|
|
| BLAKE2b-256 |
5ddc4a9063922ce604740e351808e602d42de0df081522aba592fd2eebc1bd46
|
File details
Details for the file httpxr-0.30.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edfb15129b9fb1677fd5d561c7733b22508c73c0f127babc0c95756a3e583de9
|
|
| MD5 |
67f49771263ad0ec32e8ec803ae8814a
|
|
| BLAKE2b-256 |
8ce6388e07b799e04d75bd9a8e0f633d7c202a1c8dabe53131d205df18ae89f7
|
File details
Details for the file httpxr-0.30.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: httpxr-0.30.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d60b12e1837fac128dc3f55f5edfbc88c3db227f7c70250d2462fe874a6ac43d
|
|
| MD5 |
17ff9ad43692acf0a7d70f92625ada35
|
|
| BLAKE2b-256 |
ce2bac36aa912c0ede66e4b987316e6f9443bcda115a514f64c39b87ee151b83
|