🚀 Help me work seamlessly with open source sharing by sponsoring me on GitHub
A blazing-fast Python HTTP client with advanced browser fingerprinting that accurately emulates Chrome, Firefox, Safari, Opera, and OkHttp, with precise TLS/HTTP2 signatures, and powered by wreq for high performance, outperforming requests, httpx, and curl_cffi (see benchmark).
- Async and Blocking
Clients - Plain bodies, JSON, urlencoded, multipart
- Cookie Store
- Header Order
- Redirect Policy
- Rotating Proxies
- Connection Pooling
- Streaming Transfers
- Zero-Copy Transfers
- WebSocket Upgrade
- Async DNS Resolver
- HTTPS via BoringSSL
- Free-Threaded Safety
- Automatic Decompression
This asynchronous example demonstrates how to make a simple GET request using the rnet library. So you need install rnet and run the following code:
pip install asyncio rnetAnd then the code:
import asyncio
from rnet import Impersonate, Client
async def main():
# Build a client
client = Client(impersonate=Impersonate.Firefox136)
# 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:
- Linux
- glibc >= 2.34:
x86_64,aarch64,armv7,i686 - musl:
x86_64,aarch64,armv7,i686
-
macOS:
x86_64,aarch64 -
Windows:
x86_64,i686,aarch64
- Install environment
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install maturin
pip install uv
uv venv
source .venv/bin/activate- Development
maturin develop --uv
python3 examples/client.py- Compile wheels
- Local Compilation
Install the BoringSSL build environment by referring to boring and boringssl.
maturin build --release- Musllinux
Make sure the Docker environment is installed. The provided image may be outdated, so you might need to build it yourself. Refer to rust-cross-musl and the upstream rust-cross/rust-musl-cross. Note that the upstream image lacks certain platform-specific linker environment variables, which you’ll need to add manually.
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-musleabihf
bash .github/musl_build.sh i686-unknown-linux-musl- Manylinux
For Manylinux compilation, refer to manylinux.
In fact, most device models share the same TLS/HTTP2 configuration, with the main difference being the User-Agent.
| 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 |
| Edge | Edge101, Edge122, Edge127, Edge131, Edge134 |
| Safari | 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 |
| OkHttp | OkHttp3_9, OkHttp3_11, OkHttp3_13, OkHttp3_14, OkHttp4_9, OkHttp4_10, OkHttp4_12, OkHttp5 |
| Firefox | Firefox109, Firefox117, Firefox128, Firefox133, Firefox135, FirefoxPrivate135, FirefoxAndroid135, Firefox136, FirefoxPrivate136 |
| Opera | Opera116, Opera117, Opera118, Opera119 |
For a comprehensive introduction to this library, refer to the DeepWiki documentation. This AI-generated guide, created by a third party, offers a solid overview and allows interaction with the AI to explore specific APIs.
If you would like to submit your contribution, please open a Pull Request.
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!