
🦀 Client HTTP furtif pour Rust . imite les empreintes TLS de navigateurs réels pour des requêtes indétectables. Rapide, type-safe et conçu pour une mise en réseau de précision.
. Un client HTTP furtif avancé pour Rust.
Conçu pour les développeurs soucieux de leur confidentialité qui ont besoin d'un contrôle total sur leur empreinte réseau.
Ressemble à un navigateur. Se comporte comme un navigateur. Écrit en Rust.
Construit sur bogdanfinn/tls-client — la bibliothèque de référence en matière d'empreintes TLS, plébiscitée par les professionnels de la sécurité du monde entier. Nous utilisons les bibliothèques partagées éprouvées de bogdanfinn (.dll/.so/.dylib) via des liaisons FFI parce que :
RustTLSX apporte cette technologie éprouvée à Rust avec une API type-safe et ergonomique, 6 fois plus rapide que les alternatives Python.
Les applications web modernes analysent chaque aspect de vos requêtes HTTP — non seulement les en-têtes et les cookies, mais aussi les signatures cryptographiques profondes de votre négociation TLS. Les clients HTTP standard de Rust (reqwest, hyper, ureq) génèrent des modèles facilement détectables qui identifient immédiatement le trafic automatisé.
RustTLSX résout ce problème en offrant :
Téléchargez la bibliothèque cliente TLS requise pour votre plateforme depuis les versions de tls-client :
tls-client-windows-64-1.3.3.dlltls-client-linux-ubuntu-amd64-1.3.3.sotls-client-darwin-amd64-1.3.3.dylibPlacez le fichier de bibliothèque dans la racine de votre projet, dans le chemin des bibliothèques système (/usr/local/lib/), ou assurez-vous qu'il est accessible via le PATH.
Ajoutez RustTLSX à votre Cargo.toml :
[dependencies]
rust-tlsx = "0.1"
use rust_tlsx::{TlsClient, BrowserProfile};
fn main() -> anyhow::Result<()> {
let client = TlsClient::new(BrowserProfile::Firefox120)
.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0")
.timeout(30);
let response = client.get("https://example.com")?;
println!("Status: {}", response.status);
println!("Body: {}", response.body);
Ok(())
}
RustTLSX prend en charge plus de 30 profils de navigateurs couvrant les principaux navigateurs :
// Chrome versions
BrowserProfile::Chrome103
BrowserProfile::Chrome107
BrowserProfile::Chrome109
BrowserProfile::Chrome120
// Firefox versions
BrowserProfile::Firefox102
BrowserProfile::Firefox105
BrowserProfile::Firefox108
BrowserProfile::Firefox120
// Safari versions
BrowserProfile::Safari15_6_1
BrowserProfile::Safari16_0
BrowserProfile::SafariIos16_0
// Opera and others
BrowserProfile::Opera89
BrowserProfile::Opera90
let client = TlsClient::new(BrowserProfile::Chrome109)
.header("Accept", "application/json")
.header("Accept-Language", "en-US,en;q=0.9")
.cookie("session", "abc123")
.cookie("token", "xyz789");
let response = client.get("https://api.example.com")?;
let body = r#"{"username": "user", "password": "pass"}"#;
let response = client.post("https://example.com/login", Some(body.to_string()))?;
let client = TlsClient::new(BrowserProfile::Firefox120)
.timeout(60); // seconds
let response = client.get("https://slow-api.example.com")?;
RustTLSX repose sur une fondation d'excellence prouvée plutôt que de réinventer la roue. Nous utilisons les bibliothèques compilées de bogdanfinn (.dll/.so/.dylib) via FFI parce que :
Investissement en recherche : Bogdanfinn a investi des milliers d'heures dans la rétro-ingénierie du comportement TLS des navigateurs. Répliquer cette recherche prendrait des années et produirait probablement des résultats inférieurs.
Fiabilité éprouvée : Ces bibliothèques sont utilisées par les grandes sociétés de sécurité, les outils de protection de la vie privée et les instituts de recherche du monde entier. Elles ont été testées contre tous les principaux systèmes de protection.
Évolution continue : Les empreintes des navigateurs changent constamment. Les bibliothèques de bogdanfinn reçoivent des mises à jour régulières pour correspondre aux nouvelles versions de navigateurs et aux mises à jour des systèmes de protection.
Optimisation des performances : L'implémentation native en C/Go est fortement optimisée pour la vitesse et l'efficacité mémoire, offrant des performances que les implémentations purement Rust ne peuvent pas égaler.
Chargement dynamique à l'exécution : Les bibliothèques sont chargées à la demande via FFI, éliminant la complexité de la liaison statique tout en conservant les performances.
Gestion de la mémoire : Le modèle de propriété de Rust garantit une interaction sûre avec les bibliothèques natives, empêchant les fuites de mémoire et les bugs d'utilisation après libération courants dans les implémentations C/C++.