🚀 Help me work seamlessly with open source sharing by sponsoring me on GitHub
A blazing-fast, ergonomic, and modular Python HTTP client for advanced and low-level emulation, featuring customizable TLS, JA3/JA4, and HTTP/2 fingerprinting capabilities, powered by wreq.
- Async and Blocking
Clients - Plain bodies, JSON, urlencoded, multipart
- Cookie Store
- Redirect Policy
- Original Headers
- Rotating Proxies
- WebSocket Upgrade
- Connection Pooling
- Streaming Transfers
- Zero-Copy Transfers
- HTTPS via BoringSSL
- Free-Threaded Safety
- Automatic Decompression
The following example uses the asyncio runtime with rnet installed via pip:
pip install asyncio rnet==3.0.0rc10And then the code:
import asyncio
from rnet import Client, Emulation
async def main():
# Build a client
client = Client(emulation=Emulation.Safari26)
# Use the API you're already familiar with
resp = await client.get("https://tls.peet.ws/api/all")
# Print the response
print(await resp.text())
if __name__ == "__main__":
asyncio.run(main())Additional learning resources include:
- HTTP/2 over TLS
Due to the complexity of TLS encryption and the widespread adoption of HTTP/2, browser fingerprints such as JA3, JA4, and Akamai cannot be reliably emulated using simple fingerprint strings. Instead of parsing and emulating these string-based fingerprints, rnet provides fine-grained control over TLS and HTTP/2 extensions and settings for precise browser behavior emulation.
- Device Emulation
Most browser device models share identical TLS and HTTP/2 configurations, differing only in the User-Agent string.
-
Available OS emulations
OS Description Windows Windows (any version) MacOS macOS (any version) Linux Linux (any distribution) Android Android (mobile) iOS iOS (iPhone/iPad) -
Available browser emulations
Browser Versions Chrome Chrome100,Chrome101,Chrome104,Chrome105,Chrome106,Chrome107,Chrome108,Chrome109,Chrome110,Chrome114,Chrome116,Chrome117,Chrome118,Chrome119,Chrome120,Chrome123,Chrome124,Chrome126,Chrome127,Chrome128,Chrome129,Chrome130,Chrome131,Chrome132,Chrome133,Chrome134,Chrome135,Chrome136,Chrome137,Chrome138,Chrome139,Chrome140,Chrome141Safari SafariIos17_2,SafariIos17_4_1,SafariIos16_5,Safari15_3,Safari15_5,Safari15_6_1,Safari16,Safari16_5,Safari17_0,Safari17_2_1,Safari17_4_1,Safari17_5,Safari18,SafariIPad18,Safari18_2,SafariIos18_1_1,Safari18_3,Safari18_3_1,Safari18_5,Safari26,SafariIos26,SafariIPad26Firefox Firefox109,Firefox117,Firefox128,Firefox133,Firefox135,FirefoxPrivate135,FirefoxAndroid135,Firefox136,FirefoxPrivate136,Firefox139,Firefox142,Firefox143OkHttp OkHttp3_9,OkHttp3_11,OkHttp3_13,OkHttp3_14,OkHttp4_9,OkHttp4_10,OkHttp4_12,OkHttp5Edge Edge101,Edge122,Edge127,Edge131,Edge134Opera Opera116,Opera117,Opera118,Opera119
- Platforms
- Linux(glibc/musl):
x86_64,aarch64,armv7,i686 - macOS:
x86_64,aarch64 - Windows:
x86_64,i686,aarch64 - Android:
aarch64,x86_64
- Manylinux
Install the BoringSSL build environment by referring to boring and boringssl.
# on ubuntu or debian
sudo apt install -y build-essential cmake perl pkg-config libclang-dev musl-tools git
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install uv maturin
uv venv
source .venv/bin/activate
# Development
maturin develop --uv
# Build wheels
maturin build --release- Musllinux
Make sure you have Docker installed. The provided image may be outdated, so you might need to build it yourself. See rust-cross-musl and the upstream rust-cross/rust-musl-cross for reference.
bash .github/musl_build.sh i686-unknown-linux-musl
bash .github/musl_build.sh x86_64-unknown-linux-musl
bash .github/musl_build.sh aarch64-unknown-linux-musl
bash .github/musl_build.sh armv7-unknown-linux-musleabihfHelp sustain the ongoing development of this open-source project by reaching out for commercial support. Receive private guidance, expert reviews, or direct access to the maintainer, with personalized technical assistance tailored to your needs.
Outperforms requests, httpx, Python-TLS-Client, and curl_cffi. See the benchmark for details. Benchmark data is for reference only—actual performance may vary based on your environment and use case.
Licensed under either of Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
TLS fingerprinting alone isn't enough for modern bot protection. Hyper Solutions provides the missing piece - API endpoints that generate valid antibot tokens for:
Akamai • DataDome • Kasada • Incapsula
No browser automation. Just simple API calls that return the exact cookies and headers these systems require.
🚀 Get Your API Key | 📖 Docs | 💬 Discord
CapSolver leverages AI-powered Auto Web Unblock to bypass Captchas effortlessly, providing fast, reliable, and cost-effective data access with seamless integration into Colly, Puppeteer, and Playwright—use code RNET for a 6% bonus!