hyprcurl
A high-performance Rust HTTP client with browser impersonation and TLS fingerprinting support.
Rust implementation inspired by Python's curl_cffi
Installation
Rust
Python
# Build from source
Quick Start
Rust - Simple Requests
use ;
Rust - Request Builder API
use ;
Rust - Low-level API
use ;
Python
# Simple GET
=
# GET with browser impersonation
=
# POST with impersonation and proxy
=
Browser Impersonation
Supported browsers:
ChromeLatest // Chrome 131
Chrome
FirefoxLatest // Firefox 121
Firefox
SafariLatest // Safari 18.0
Safari
EdgeLatest // Edge 131
Edge
Each browser impersonation sets:
- User-Agent header
- HTTP/2 settings
- TLS cipher suites
- TLS curves (including X25519Kyber768 for Chrome)
- SSL/TLS signature algorithms
- ALPN protocols
Dependencies
- libcurl - System libcurl installation required
- Rust 1.70+ - For building from source
- Python 3.8+ - For Python bindings (optional)
Testing
Run the comprehensive test suite:
# Run all tests
# Run integration tests (makes real HTTP requests)
# Run with output
Benchmarks
Compare performance with Python curl_cffi:
1. Start the test server
2. Build Rust library
3. Run benchmarks
Results:
- CSV file:
python_vs_rust_bench.csv - Chart:
python_vs_rust_bench.png - Console output with speedup analysis
Documentation
Book-style Documentation
Build and view the comprehensive guide:
# Install mdBook
# Build and serve the book
# Opens at http://localhost:3000
API Documentation
Generate Rust API docs:
# Standard docs
# With all features
Examples
See the examples/ directory for complete working examples:
simple_get.rs- Basic GET requestsbrowser_impersonation.rs- All browser typesproxy_usage.rs- HTTP and SOCKS5 proxiespost_request.rs- POST with various optionscomprehensive.rs- Full feature showcase
Run examples:
Acknowledgments
Inspired by curl_cffi - the excellent Python library for browser impersonation.