Skip to main content

httpr

CodSpeed

Blazing fast http-client for Python in Rust 🦀 that can be used as drop-in replacement for httpx and requests in most cases.

  • Fast: httpr is built on top of reqwests, which is a blazing fast http client in Rust. Check out the benchmark.
  • Both async and sync: httpr provides both a sync and async client.
  • Lightweight: httpr is a lightweight http client with zero python-dependencies.
  • Async: first-class async support.
  • Streaming: supports streaming responses for efficient memory usage with large payloads.
  • http2: httpr supports HTTP/2.
  • mTLS: httpr supports mTLS.

Not implemented yet

  • Fine-grained error handling: Fine-grained error handling is not implemented yet.

Documentation

📖 Full documentation: thomasht86.github.io/httpr

🤖 LLM-friendly docs: llms.txt | llms-full.txt

Table of Contents

Installation

Install with uv

uv add httpr

or

uv pip install httpr

Install from PyPI

pip install -U httpr

Benchmark

Performance is tracked continuously in two complementary ways:

  • CPU cost per pull request with CodSpeed: tests/benchmark/codspeed/ runs under CodSpeed's CPU simulation instrument on every PR and every push to main, so a regression in decoding, request building or transfer handling is reported on the PR that introduces it. See tests/benchmark/codspeed/README.md.
  • Wall-clock trend over time with github-action-benchmark: on every push to main, tests/benchmark/test_performance.py runs in CI and the results are published as interactive charts.

📈 View live benchmark results

Against other clients, benchmark/benchmark.py is run every Monday against the latest release of each library (requests, httpx, httpx2, aiohttp, curl_cffi, pycurl, tls_client) and published at thomasht86.github.io/httpr/dev/bench/compare, with the full tables and raw CSVs. Seconds for 400 requests against a local server, lower is better:

HTTP client comparison

To run the benchmarks locally, see benchmark/README.md.

Usage

I. Client

class Client:
    """Initializes an HTTP client.

    Args:
        auth (tuple[str, str| None] | None): Username and password for basic authentication. Default is None.
        auth_bearer (str | None): Bearer token for authentication. Default is None.
        params (QueryParamTypes | None): Default query parameters to include in all requests, merged with
            each request's own `params` (the request wins per key). Default is None.
        headers (dict[str, str] | None): Default headers to send with requests. 
        cookies (dict[str, str] | None): - Map of cookies to send with requests as the `Cookie` header.
        timeout (float | None): Timeout in seconds for waiting on the server: for the response headers,
            then for each chunk of the body, so a response that keeps arriving is never cut off. Default is 30;
            `None` disables it.
        cookie_store (bool | None): Enable a persistent cookie store. Received cookies will be preserved and included
            in additional requests. Default is True.
        referer (bool | None): Enable or disable automatic setting of the `Referer` header. Default is True.
        proxy (str | None): Proxy URL for HTTP requests. Example: "socks5://127.0.0.1:9150". Default is None.
        follow_redirects (bool | None): Whether to follow redirects. Default is True.
        max_redirects (int | None): Maximum redirects to follow. Default 20. Applies if `follow_redirects` is True.
        verify (bool | None): Verify SSL certificates. Default is True.
        ca_cert_file (str | None): Path to CA certificate store. Default is None.
        https_only` (bool | None): Restrict the Client to be used with HTTPS only requests. Default is `false`.
        http2_only` (bool | None): Speak HTTP/2 from the first byte (prior knowledge), including cleartext h2c on
            `http://` URLs. Default is `false`, which negotiates: over TLS, HTTP/2 when the server offers it,
            otherwise HTTP/1.1; plain `http://` uses HTTP/1.1.
        http1_only` (bool | None): Only use HTTP/1.1, never HTTP/2. Cannot be combined with `http2_only`.
            Default is `false`.

    """

Client lifecycle

A Client owns a connection pool. Use it as a context manager, or call close() when you are done, to release the pooled connections back to the OS:

with httpr.Client() as client:
    client.get("https://httpbin.org/get")
# pool released here

client = httpr.Client()
try:
    client.get("https://httpbin.org/get")
finally:
    client.close()  # idempotent

Requests that are still in flight when close() is called (including open stream() responses) finish normally; the pool is released as soon as the last of them completes. A request made afterwards reopens the client with a fresh pool, the way a requests.Session does, and emits httpr.ClientReopenedWarning (a ResourceWarning, silent by default). Run with -W error::httpr.ClientReopenedWarning or warnings.simplefilter("error", httpr.ClientReopenedWarning) to get httpx's strict use-after-close behaviour instead. client.is_closed tells you which state a client is in. AsyncClient offers the same via aclose() / async with, and additionally shuts down its own thread pool. A client that is garbage-collected without being closed releases its pool too, but only once the interpreter gets to it, so prefer closing explicitly.

Client methods

The Client class provides a set of methods for making HTTP requests: get, head, options, delete, post, put, patch, each of which internally utilizes the request() method for execution. The parameters for these methods closely resemble those in httpx.

def get(
    url: str,
    params: QueryParamTypes | None = None,
    headers: dict[str, str] | None = None,
    cookies: dict[str, str] | None = None,
    auth: tuple[str, str| None] | None = None,
    auth_bearer: str | None = None,
    timeout: float | None = 30,
):
    """Performs a GET request to the specified URL.

    Args:
        url (str): The URL to which the request will be made.
        params (QueryParamTypes | None): Query parameters to append to the URL, merged with the client's.
            Values may be str, int, float, bool (sent as `true`/`false`), None (sent empty) or a
            list/tuple of those, which repeats the key. Default is None.
        headers (dict[str, str] | None): A map of HTTP headers to send with the request. Default is None.
        cookies (dict[str, str] | None): Cookies to send with the request, merged with the client's into
            a single `Cookie` header.
        auth (tuple[str, str| None] | None): A tuple containing the username and an optional password
            for basic authentication. Default is None.
        auth_bearer (str | None): A string representing the bearer token for bearer token authentication. Default is None.
        timeout (float | None): The timeout for the request in seconds. Default is 30.

    """
def post(
    url: str,
    params: QueryParamTypes | None = None,
    headers: dict[str, str] | None = None,
    cookies: dict[str, str] | None = None,
    content: bytes | None = None,
    data: dict[str, Any] | None = None,
    json: Any | None = None,
    files: dict[str, str] | None = None,
    auth: tuple[str, str| None] | None = None,
    auth_bearer: str | None = None,
    timeout: float | None = 30,
):
    """Performs a POST request to the specified URL.

    Args:
        url (str): The URL to which the request will be made.
        params (QueryParamTypes | None): Query parameters to append to the URL, merged with the client's.
            Values may be str, int, float, bool (sent as `true`/`false`), None (sent empty) or a
            list/tuple of those, which repeats the key. Default is None.
        headers (dict[str, str] | None): A map of HTTP headers to send with the request. Default is None.
        cookies (dict[str, str] | None): Cookies to send with the request, merged with the client's into
            a single `Cookie` header.
        content (bytes | None): The content to send in the request body as bytes. Default is None.
        data (dict[str, Any] | None): The form data to send in the request body; values are converted
            like `params`, so a list repeats the field. Default is None.
        json (Any | None): A JSON serializable object to send in the request body. Default is None.
        files (dict[str, str] | None): A map of file fields to file paths to be sent as multipart/form-data. Default is None.
        auth (tuple[str, str| None] | None): A tuple containing the username and an optional password
            for basic authentication. Default is None.
        auth_bearer (str | None): A string representing the bearer token for bearer token authentication. Default is None.
        timeout (float | None): The timeout for the request in seconds. Default is 30.

    """

Response object

The Client class returns a Response object that contains the following attributes and methods:

resp.content
resp.cookies
resp.encoding
resp.headers
resp.json()
resp.status_code
resp.reason_phrase  # e.g. "OK", "Not Found"
resp.raise_for_status()  # raise HTTPStatusError on non-2xx (returns self)
resp.is_informational  # 1xx
resp.is_success  # 2xx
resp.is_redirect  # 3xx
resp.is_client_error  # 4xx
resp.is_server_error  # 5xx
resp.is_error  # 4xx or 5xx
resp.has_redirect_location  # 3xx with a Location header
resp.text
resp.text_markdown  # html is converted to markdown text using html2text-rs
resp.text_plain  # html is converted to plain text
resp.text_rich  # html is converted to rich text
resp.url

raise_for_status() follows httpx semantics: any non-2xx status raises HTTPStatusError (not just 4xx/5xx as in requests).

Streaming responses

The Client class supports streaming responses for efficient memory usage when handling large payloads. Use the stream() context manager to iterate over response data without buffering the entire response in memory.

# Stream bytes chunks
with client.stream("GET", "https://example.com/large-file") as response:
    print(f"Status: {response.status_code}")
    for chunk in response.iter_bytes():
        process(chunk)

# Stream text chunks
with client.stream("GET", "https://example.com/text") as response:
    for text in response.iter_text():
        print(text, end="")

# Stream line by line (useful for Server-Sent Events)
with client.stream("GET", "https://example.com/events") as response:
    for line in response.iter_lines():
        print(line.strip())

# Read entire response (if needed after checking headers)
with client.stream("GET", url) as response:
    if response.status_code == 200:
        content = response.read()

StreamingResponse attributes:

  • status_code - HTTP status code
  • reason_phrase - Canonical reason phrase (e.g. "OK")
  • raise_for_status() - Raise HTTPStatusError on a non-2xx status (returns self)
  • is_success / is_error / is_redirect / ... - Status-class helpers (same as Response)
  • headers - Response headers (case-insensitive)
  • cookies - Response cookies
  • url - Final URL after redirects
  • is_closed - Whether the stream has been closed
  • is_consumed - Whether the stream has been fully consumed

StreamingResponse methods:

  • iter_bytes() - Iterate over response as bytes chunks
  • iter_text() - Iterate over response as text chunks (decoded using response encoding)
  • iter_lines() - Iterate over response line by line
  • read() - Read entire remaining response body into memory
  • close() - Close the stream and release resources

Important notes:

  • Streaming must be used as a context manager (with statement)
  • Headers, cookies, and status code are available immediately before reading the body
  • The response body is only read when you iterate over it or call read()
  • Once consumed, the stream cannot be read again
  • Streaming is supported for all HTTP methods (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS)

Examples

import httpr

# Initialize the client
client = httpr.Client() 

# GET request
resp = client.get("https://tls.peet.ws/api/all")
print(resp.json())

# GET request with passing params and setting timeout
params = {"param1": "value1", "param2": "value2"}
resp = client.post(url="https://httpbin.org/anything", params=params, timeout=10)
print(r.text)

# POST Binary Request Data
content = b"some_data"
resp = client.post(url="https://httpbin.org/anything", content=content)
print(r.text)

# POST Form Encoded Data
data = {"key1": "value1", "key2": "value2"}
resp = client.post(url="https://httpbin.org/anything", data=data)
print(r.text)

# POST JSON Encoded Data
json = {"key1": "value1", "key2": "value2"}
resp = client.post(url="https://httpbin.org/anything", json=json)
print(r.text)

# POST Multipart-Encoded Files
files = {'file1': '/home/root/file1.txt', 'file2': 'home/root/file2.txt'}
r = client.post("https://httpbin.org/post", files=files)
print(r.text)

# Authentication using user/password
auth = ("user", "password")
resp = client.post(url="https://httpbin.org/anything", auth=auth)
print(r.text)

# Authentication using auth bearer
auth_bearer = "bearerXXXXXXXXXXXXXXXXXXXX"
resp = client.post(url="https://httpbin.org/anything", auth_bearer=auth_bearer)
print(r.text)

# Using proxy or env var HTTPR_PROXY
resp = httpr.Client(proxy="http://127.0.0.1:8080").get("https://tls.peet.ws/api/all")
print(resp.json())
export HTTPR_PROXY="socks5://127.0.0.1:1080"
resp = httpr.Client().get("https://tls.peet.ws/api/all")
print(resp.json())

# Using custom CA certificate store: ca_cert_file param, or env var HTTPR_CA_BUNDLE as the default
# (ca_cert_file applies only to the client it is passed to and never modifies the environment)
resp = httpr.Client(ca_cert_file="/cert/cacert.pem").get("https://tls.peet.ws/api/all")
print(resp.json())
resp = httpr.Client(ca_cert_file=certifi.where()).get("https://tls.peet.ws/api/all")
print(resp.json())
export HTTPR_CA_BUNDLE="/home/user/Downloads/cert.pem"
resp = httpr.Client().get("https://tls.peet.ws/api/all")
print(resp.json())

# You can also use convenience functions that use a default Client instance under the hood:
# httpr.get() | httpr.head() | httpr.options() | httpr.delete() | httpr.post() | httpr.patch() | httpr.put()
resp = httpr.get("https://httpbin.org/anything")
print(r.text)

II. AsyncClient

httpr.AsyncClient() is an asynchronous wrapper around the httpr.Client class, offering the same functions, behavior, and input arguments.

import asyncio
import logging

import httpr

async def aget_text(url):
    async with httpr.AsyncClient() as client:
        resp = await client.get(url)
        return resp.text

async def main():
    urls = ["https://nytimes.com/", "https://cnn.com/", "https://abcnews.go.com/"]
    tasks = [aget_text(u) for u in urls]
    results = await asyncio.gather(*tasks)

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    asyncio.run(main())

Streaming with AsyncClient:

AsyncClient.stream() yields an AsyncStreamingResponse with async for iteration. aiter_bytes(), aiter_text(), aiter_lines() and aread() read each chunk on the client's thread pool, so the event loop keeps serving other tasks while the server is producing data (useful for Server-Sent Events and LLM token streams that stay open for a long time):

async with httpr.AsyncClient() as client:
    async with client.stream("GET", "https://example.com/large-file") as response:
        async for chunk in response.aiter_bytes():
            process(chunk)

    async with client.stream("GET", "https://example.com/events") as response:
        async for line in response.aiter_lines():
            handle(line)

The synchronous iter_bytes(), iter_text(), iter_lines() and read() are still available on the async response, but each step blocks the event loop until the next chunk arrives, so prefer the a-prefixed variants in async code.

Precompiled wheels

Provides precompiled wheels for the following platforms:

  • 🐧 linux: amd64, aarch64, armv7 (aarch64 and armv7 builds are manylinux_2_34 compatible. ubuntu>=22.04, debian>=12)
  • 🐧 musllinux: amd64, aarch64
  • 🪟 windows: amd64, arm64
  • 🍏 macos: amd64, aarch64.

Development

This project uses Taskfile for development workflows.

Setup

# Install dependencies
uv sync --extra dev

# Build Rust extension (required after any .rs changes)
uv run maturin develop

# Add hosts entry for e2e tests (one-time setup)
echo '127.0.0.1 httpbun.local' | sudo tee -a /etc/hosts

Running Tests

# List all available tasks
task --list

# Run unit tests only
task test:unit

# Run e2e tests (full workflow: start httpbun → test → stop)
task e2e

# Run e2e tests iteratively (keep httpbun running)
task e2e:local
task test:e2e  # run tests against running container

# Run all tests
task test

Other Tasks

task dev           # Build Rust extension
task check         # Run all checks (lint + test) - use before committing
task test:benchmark    # Wall-clock benchmarks
task test:codspeed     # CodSpeed CPU-simulation benchmarks (requires the codspeed CLI)
task lint          # Run Python linters (ruff + mypy)
task lint:rust     # Run Rust linters (fmt + clippy)
task lint:all      # Run all linters (Python + Rust)
task fmt           # Format Python code with ruff
task fmt:rust      # Format Rust code
task fmt:all       # Format all code (Python + Rust)
task certs         # Generate SSL certificates for e2e tests
task httpbun:start # Start httpbun container
task httpbun:stop  # Stop httpbun container
task httpbun:logs  # Show container logs

Test Structure

  • tests/unit/ - Unit tests using pytest-httpbin (fast, no Docker required)
  • tests/e2e/ - E2E tests using httpbun Docker container with SSL
  • tests/benchmark/test_performance.py - Wall-clock benchmarks published to the live charts
  • tests/benchmark/codspeed/ - CPU benchmarks measured by CodSpeed on every PR

CI

Job PRs Push to main Tags (Release) Manual
lint ✓
test (Python 3.10-3.14) ✓ ✓ ✓
docs (build) ✓
benchmarks (CodSpeed) ✓ ✓ ✓
linux, musllinux, windows, macos, sdist ✓ ✓
release (PyPI publish) ✓ ✓
  • PRs: Run lint, tests across Python 3.10-3.14 matrix, verify docs build, and report the CPU cost of the CodSpeed benchmark suite
  • Push to main: Run tests and the CodSpeed benchmarks, then the separate Benchmark workflow runs the wall-clock suite and publishes results to the live benchmark charts
  • Weekly (Monday 06:00 UTC): The Client comparison workflow benchmarks httpr against the latest release of each other client and publishes the comparison page
  • Tags: Run tests, build wheels, publish stable release to PyPI
  • Manual: Full multi-platform wheel builds with release

Acknowledgements

  • uv: The package manager used, and for leading the way in the "Rust for python tools"-sphere.
  • primp: A lot of code is borrowed from primp, that wraps rust library rquest for python in a similar way. If primp supported mTLS, I would have used it instead.
  • reqwests: The rust library that powers httpr.
  • pyo3
  • maturin

Metadata

Release files for httpr 0.7.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for httpr 0.7.5
File Size Uploaded
httpr-0.7.5.tar.gz 277.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for httpr 0.7.5
File
httpr-0.7.5-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
httpr-0.7.5-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
httpr-0.7.5-cp314-cp314t-win32.whl CPython 3.14 CPython 3.14 free-threading Windows x86-32 Details
httpr-0.7.5-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details
httpr-0.7.5-cp314-cp314t-musllinux_1_2_i686.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32 Details
httpr-0.7.5-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details
httpr-0.7.5-cp314-cp314t-manylinux_2_39_riscv64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.39+ RISC-V 64 Details
httpr-0.7.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
httpr-0.7.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l Details
httpr-0.7.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
httpr-0.7.5-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.12+ x86-32 Details
httpr-0.7.5-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
httpr-0.7.5-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
httpr-0.7.5-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
httpr-0.7.5-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
httpr-0.7.5-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
httpr-0.7.5-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
httpr-0.7.5-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
httpr-0.7.5-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
httpr-0.7.5-cp310-abi3-manylinux_2_39_riscv64.whl CPython 3.10 abi3 Linux glibc 2.39+ RISC-V 64 Details
httpr-0.7.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
httpr-0.7.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
httpr-0.7.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
httpr-0.7.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl CPython 3.10 abi3 Linux glibc 2.12+ x86-32 Details
httpr-0.7.5-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
httpr-0.7.5-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 63.4 MB

Release files / httpr-0.7.5.tar.gz

Download URL httpr-0.7.5.tar.gz
Size 277.8 kB
Tags Source
SHA-256 checksum
How to use checksums
caba35000551177fb5eb3d44b336b6f8626fe5505ae92e848fbc1cc64dc671e5
BLAKE2b-256 checksum
How to use checksums
95d56003ee0194ff7a84ddf293ff788b9667363258dd521dfbdbaf9f4eb101eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-win_arm64.whl

Download URL httpr-0.7.5-cp314-cp314t-win_arm64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
2fd7d9e942bcf5262fb868128d4a94f300fa87cd094226d691485af2c388233c
BLAKE2b-256 checksum
How to use checksums
38a0f7201622c968d35b844c8c71fb6741d79246908b08847d84e18557a02e30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-win_amd64.whl

Download URL httpr-0.7.5-cp314-cp314t-win_amd64.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
af57d386809a4a43a507646dc3bd600ec6f736564bdab4b7dd4479e55ff01c66
BLAKE2b-256 checksum
How to use checksums
6f064d49b1471a989f267d2f843b2fbef76931e033989d64870dbc24085acf83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-win32.whl

Download URL httpr-0.7.5-cp314-cp314t-win32.whl
Size 2.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-32
SHA-256 checksum
How to use checksums
8df7487939987111ba9a3a955c4a38552247691fc8827a9406f1472ed5b7dffe
BLAKE2b-256 checksum
How to use checksums
4eb025b3bf44deb0277bf41e20813274626588666d066d7c7682aeaa6eaa3b2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL httpr-0.7.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 2.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
dead9c1518e1d365caaf3e0e17a7158fe3c09433d74485c5f38411db9a950635
BLAKE2b-256 checksum
How to use checksums
ff078d7b09f9d9ed094cb67f50c8a8407695f0347437d876a56cf8b4d75cfda1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-musllinux_1_2_i686.whl

Download URL httpr-0.7.5-cp314-cp314t-musllinux_1_2_i686.whl
Size 2.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-32
SHA-256 checksum
How to use checksums
89ff2a5c14cb580ba4cee88cb1c30cecd673b0b0be706c1ac0ed48e66ac5e74d
BLAKE2b-256 checksum
How to use checksums
cac278303697ade77bcab6d2d75af4dabde02b3caaab4d5158ffe86df400bb4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL httpr-0.7.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 2.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
1fd8c8a1b9e92ac90bdc62211faa6a0b153dd61617a4450938e60fd925276734
BLAKE2b-256 checksum
How to use checksums
e698abdd6a1fb9aac5541d5d0e40d5a711a2acd90d37ca2435f50b82bd90e6e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-manylinux_2_39_riscv64.whl

Download URL httpr-0.7.5-cp314-cp314t-manylinux_2_39_riscv64.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.39+ RISC-V 64
SHA-256 checksum
How to use checksums
714005257a5135fe982437b1d328574f346a2dcda4026125a53344c9afdc37ae
BLAKE2b-256 checksum
How to use checksums
c2e325ed00cce5a28e174ac771c6005dd7a88a8b2ee1582b967946df4535dc66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL httpr-0.7.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
22e89b8f7a86ecbf100939150f1256aaa2d5e2fb1c0dc75a1f03bd385d50df62
BLAKE2b-256 checksum
How to use checksums
5afd3cf1b2d50b7ec3cdea8141573e75b903a6fb2aad64e1957a035aeafc990b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL httpr-0.7.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 2.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARMv7l
SHA-256 checksum
How to use checksums
87c372bcb9824b2e424b791a8bb580f702735daca3166871753411188b1ce2fb
BLAKE2b-256 checksum
How to use checksums
9c5b2d7b710aa76f9bb20a8103938101cc90b3b1f20c7f5e944c95827b2edf16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL httpr-0.7.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d81006f53779c7fe2809cc9053c092d4e79a37417792007de6298c52e978733f
BLAKE2b-256 checksum
How to use checksums
5fe5d81f0dd3ba86f878d2a84a1e61ebcfeafd74a15a3ce42c24f7466bdde22f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL httpr-0.7.5-cp314-cp314t-manylinux_2_12_i686.manylinux2010_i686.whl
Size 2.5 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.12+ x86-32
SHA-256 checksum
How to use checksums
695e183931c159b0eeb5eb0f9fe90f23a01e6137aa943b820df0faef673736b5
BLAKE2b-256 checksum
How to use checksums
d58a6380b23453c3ddc108bbefcd5bd70cfa8163cb396a3d5e11d5cb2b971b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-macosx_11_0_arm64.whl

Download URL httpr-0.7.5-cp314-cp314t-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a91acccb0b24a29f7bad62d679ae71d8c79a6c9364c1b2c3b6d38d89ccafd59c
BLAKE2b-256 checksum
How to use checksums
3510dd2517410af2f24835e21399f1afedfe2ea66eef5cf9f693869b9ca6c88a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL httpr-0.7.5-cp314-cp314t-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f6eec7c1a16f7858cf49cd9f9de435668fc131f0044e4f62968a87e490c09fc2
BLAKE2b-256 checksum
How to use checksums
e493a7d6a95eb6800eb8abb72e00cec92b295f8ba40207cc86887e219c7d2dcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-win_arm64.whl

Download URL httpr-0.7.5-cp310-abi3-win_arm64.whl
Size 2.2 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
5e497e1c553dc92c11791d4536494a6a0bd15aa5cf74cd9d36897319356c320b
BLAKE2b-256 checksum
How to use checksums
72121a5a8ffc6259f2d9935283d3c6e47333e9afa91628ae8996cb37ecbe0b2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-win_amd64.whl

Download URL httpr-0.7.5-cp310-abi3-win_amd64.whl
Size 2.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
9bd2aa5e5eb48a51834eaebe695ce613b729ae2e8dc4bcacf974e92dd7db4ede
BLAKE2b-256 checksum
How to use checksums
56cd30d84f5f76e635cb56b054527aae336b415d7a4653a56a8dc557e7c66332
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-win32.whl

Download URL httpr-0.7.5-cp310-abi3-win32.whl
Size 2.1 MB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
fd10aacfe46a30a7838e3886c9fdcbcdbe328587189c0e92d0fcfba5ffc064ad
BLAKE2b-256 checksum
How to use checksums
3383c12a9b57f85c32aa15b4d9d3217c7ad19d74e33a796920a50daa6997d622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL httpr-0.7.5-cp310-abi3-musllinux_1_2_x86_64.whl
Size 2.8 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
c991f41afdc03e1fe10401b6c74736a8f07e9e402e3d623b2320c92cae970c0d
BLAKE2b-256 checksum
How to use checksums
927113b5d08a45db27236c6e438214ffc6fcc6746f4e13e9f4dcc7eab217c904
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-musllinux_1_2_i686.whl

Download URL httpr-0.7.5-cp310-abi3-musllinux_1_2_i686.whl
Size 2.6 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
b71ad0a74d1ef37cb8334d6fdcc6550848f2662f3c2fb494af25fb601d7fb821
BLAKE2b-256 checksum
How to use checksums
4977bf163d1ec1d282d76665eacba1dd6dd86f378693b7023df59290e658dfe1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL httpr-0.7.5-cp310-abi3-musllinux_1_2_aarch64.whl
Size 2.7 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
c2fc4da3e475c09586524d8532abe6ee730496a8af80d4f328095bd58b6086a7
BLAKE2b-256 checksum
How to use checksums
9be3fa6fee2830052e484578e232cb4b0cc8863c6527cfe1582d839a48f45129
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-manylinux_2_39_riscv64.whl

Download URL httpr-0.7.5-cp310-abi3-manylinux_2_39_riscv64.whl
Size 2.4 MB
Tags CPython 3.10 Linux glibc 2.39+ RISC-V 64 abi3
SHA-256 checksum
How to use checksums
4e0642574018a0fd385d1dbcb89e9de71485f6b2e056b57ac72a5a57c2582cfc
BLAKE2b-256 checksum
How to use checksums
0d43657f344a9828d54c2de4dfaf6d4b47ffec3a2ab3e533909b49cc6c194b00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL httpr-0.7.5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
4ce8867d91464b8b961cea79f96bedc99359628f47596262ef281cb66ed0045b
BLAKE2b-256 checksum
How to use checksums
e020a26ca5f79a2bfe1ba88512c4f7df0c0e3a546c9280c6ab497a5904970cc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL httpr-0.7.5-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 2.4 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
02e63c2be482e5fef92704df6243c609a8b364d34574132a84901c71149d48cc
BLAKE2b-256 checksum
How to use checksums
e01f42b71d05a9de83d21e47d92b02d47a2d5f4c11dc6bf35504b6d77ab1c6df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL httpr-0.7.5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
89669ee803d3b9981ecefd441492fe89b5a17d1dc745a2dbfd63d796aa43b46d
BLAKE2b-256 checksum
How to use checksums
ea88be66af843457c212bcb55346e5f3351d7cbd32085bc5f99bf8a858810da4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl

Download URL httpr-0.7.5-cp310-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Size 2.5 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-32 abi3
SHA-256 checksum
How to use checksums
b332dfcb47c22650bb85103879bb4fb66c08c0aa59a125e8af23fb56ca4b5296
BLAKE2b-256 checksum
How to use checksums
b4f1738a1df9c5ce9ffbd02d01bae147d578988df804c6dd95eb9fd2fd8474c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-macosx_11_0_arm64.whl

Download URL httpr-0.7.5-cp310-abi3-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
16f2d1a8aedcc21fe02c9207dd403daf47d85b8f55e234660a94e266270ea074
BLAKE2b-256 checksum
How to use checksums
5a54d33cf3bbb6bd0160a01239369cd83d2de6f8d7d1cafbe36223d606c570e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / httpr-0.7.5-cp310-abi3-macosx_10_12_x86_64.whl

Download URL httpr-0.7.5-cp310-abi3-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d99b558e8010b02a52d009f375786b9f03c01065556265830ed19b0a5a1a9183
BLAKE2b-256 checksum
How to use checksums
e5e733d24322d07c27834129b9f8b3c47b005dc7476733cca579e47385ba9cf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

0.7.6

40 release files

This release

0.7.5 This release

27 release files

0.7.2

23 release files

0.6.0

23 release files

0.5.2

23 release files

0.4.8

34 release files

0.4.7

34 release files

0.4.4

34 release files

0.4.3

34 release files

0.4.2

34 release files

0.4.1

34 release files

0.4.0

34 release files

0.3.3

34 release files

0.3.2

34 release files

0.3.1

34 release files

0.2.6

34 release files

0.2.5

34 release files

0.2.2

34 release files

0.1.0

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page