Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

reqrio-py

reqrio-py is the Python binding for reqrio, a lightweight and high-concurrency HTTP request library.

Features

  • High-performance HTTP/HTTPS request engine with low-copy semantics.
  • Built-in TLS support using BoringSSL.
  • Supports HTTP/1.1 and HTTP/2.0 via ALPN.
  • Supports custom headers, cookies, timeouts, proxies, and certificate verification.
  • Supports form data, JSON, text, bytes, and multipart file uploads.
  • Includes a WebSocket client wrapper.

Installation

pip install reqrio

Python 3.9 or newer is required.

Quick Start

import reqrio

session = reqrio.Session(
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    },
    alpn=reqrio.ALPN.HTTP20,
    verify=True,
)

session.set_timeout(3000, 3000, 3000, 30000)

response = session.get("https://www.example.com")
print(response.statue_code())
print(response.text())

session.close()

API Reference

reqrio.Session

Create a session:

session = reqrio.Session(
    headers=None,
    alpn=reqrio.ALPN.HTTP11,
    verify=True,
    proxy=None,
    key_log=None,
    ja3=None,
    ja4=None,
    client_hello=None,
    random_tls=False,
    custom_tls=None,
    token="",
)

Common methods:

  • session.set_headers(headers: dict)
  • session.add_header(name: str, value: str)
  • session.remove_header(name: str)
  • session.set_timeout(connect, read, write, handle, connect_times=3, handle_times=3)
  • session.set_cookie(cookie: str)
  • session.add_cookie(name: str, value: str)
  • session.get(url, params=None, data=None, json=None, bytes=None, text=None, **kwargs)
  • session.post(url, params=None, data=None, json=None, bytes=None, text=None, **kwargs)
  • session.open_stream(method, url, params=None, data=None, json=None, bytes=None, text=None, **kwargs)
  • session.close()

Helper functions

reqrio also offers shortcut functions for single requests:

resp = reqrio.get(
    "https://www.example.com",
    headers={"User-Agent": "..."},
    params={"q": "test"},
)
print(resp.statue_code())

resp = reqrio.post(
    "https://www.example.com/api",
    headers={"Content-Type": "application/json"},
    json={"key": "value"},
)
print(resp.statue_code())

WebSocket support

from reqrio import WebSocket, WsOpCode

headers = {
    "Origin": "https://example.com",
    "User-Agent": "Mozilla/5.0...",
}

ws = WebSocket(
    "wss://example.com/",
    uri="wss://example.com/api/ws",
    headers=headers,
)
ws.open()

while True:
    frame = ws.read()
    if frame.opcode == WsOpCode.PING:
        ws.write(WsOpCode.PONG, frame.payload)
    else:
        print(frame.payload.decode("utf-8"))

ws.close()

Request Body Types

Supported request bodies:

  • data={...} for form data
  • json={...} for JSON payloads
  • text="..." for plain text
  • bytes=b"..." for raw bytes
  • files=[...] for multipart file upload

File upload example:

files = [
    {
        "path": "./example.txt",
        "field_name": "file",
        "filetype": "text/plain",
    }
]

response = session.post(
    "https://www.example.com/upload",
    data={"name": "test"},
    files=files,
)
print(response.statue_code())

TLS Fingerprinting and Advanced Options

reqrio.Session supports advanced TLS configuration:

  • ja3: JA3 fingerprint string
  • ja4: JA4 fingerprint string
  • client_hello: raw TLS ClientHello bytes
  • random_tls: random TLS fingerprint
  • custom_tls: custom TLS configuration dictionary
  • token: fingerprint authentication token

Additional options:

  • verify=False to disable certificate verification
  • proxy for HTTP/SOCKS proxy support
  • key_log to save TLS key material for debugging

Notes

  • reqrio-py is designed to reuse connections when possible.
  • Be sure to call session.close() to release resources.

License

Apache-2.0

Metadata

Release files for reqrio 0.4.0a3

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

Source distribution (sdist)

Source distribution for reqrio 0.4.0a3
File Size Uploaded
reqrio-0.4.0a3.tar.gz 3.9 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for reqrio 0.4.0a3
File Interpreter ABI Platform
reqrio-0.4.0a3-py3-none-any.whl Python 3 none any Details

Total release size: 7.7 MB

Release files / reqrio-0.4.0a3.tar.gz

Download URL reqrio-0.4.0a3.tar.gz
Size 3.9 MB
Tags Source
SHA-256 checksum
How to use checksums
88ca4296dd035645feeb14062aa1b617daac987059f8fe88be171872162eed6a
BLAKE2b-256 checksum
How to use checksums
eaf6337c04192c4f6a5286b1cdd92eab2ed64936805850fcfebd92760f222194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / reqrio-0.4.0a3-py3-none-any.whl

Download URL reqrio-0.4.0a3-py3-none-any.whl
Size 3.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4cd7054f68130ad18f86297c567aa07ec4d0537336327fa46d1c1122f0f71a62
BLAKE2b-256 checksum
How to use checksums
d893d9ec4648a27eba31183cfeb8391612d3d077931bbb9c2619e3da31c03846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.4.0a3 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.20

2 release files

0.0.16

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 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