
🦀 Rust के लिए स्टील्थ HTTP क्लाइंट। अज्ञेय अनुरोधों के लिए वास्तविक ब्राउज़र TLS फ़िंगरप्रिंट का अनुकरण करता है। तेज़, टाइप-सुरक्षित, और सटीक नेटवर्किंग के लिए निर्मित।
.
Rust के लिए एक उन्नत स्टील्थ HTTP क्लाइंट।
गोपनीयता के प्रति जागरूक डेवलपर्स के लिए बनाया गया है, जिन्हें अपने नेटवर्क फ़िंगरप्रिंट पर पूर्ण नियंत्रण की आवश्यकता होती है।
ब्राउज़र जैसा दिखता है। ब्राउज़र की तरह कार्य करता है। Rust में लिखा गया है।
bogdanfinn/tls-client पर आधारित - यह उद्योग-अग्रणी TLS फ़िंगरप्रिंटिंग लाइब्रेरी है जिस पर दुनिया भर के सुरक्षा पेशेवर भरोसा करते हैं। हम FFI बाइंडिंग के माध्यम से bogdanfinn की युद्ध-परीक्षित साझा लाइब्रेरीज़ (.dll/.so/.dylib) का उपयोग करते हैं, क्योंकि:
RustTLSX इस सिद्ध तकनीक को Rust में एक टाइप-सेफ़, एर्गोनोमिक API के साथ लाता है जो Python विकल्पों से 6 गुना तेज़ है।
आधुनिक वेब एप्लिकेशन आपके HTTP अनुरोधों के हर पहलू का विश्लेषण करते हैं - केवल हेडर और कुकीज़ ही नहीं, बल्कि आपके TLS हैंडशेक के गहरे क्रिप्टोग्राफ़िक हस्ताक्षर भी। मानक Rust HTTP क्लाइंट (reqwest, hyper, ureq) आसानी से पहचाने जाने योग्य पैटर्न उत्पन्न करते हैं जो स्वचालित ट्रैफ़िक को तुरंत पहचान लेते हैं।
RustTLSX इसे इस प्रकार हल करता है:
अपने प्लेटफ़ॉर्म के लिए आवश्यक TLS क्लाइंट लाइब्रेरी को tls-client releases से डाउनलोड करें:
tls-client-windows-64-1.3.3.dlltls-client-linux-ubuntu-amd64-1.3.3.sotls-client-darwin-amd64-1.3.3.dylibलाइब्रेरी फ़ाइल को अपने प्रोजेक्ट रूट, सिस्टम लाइब्रेरी पथ (/usr/local/lib/) में रखें, या सुनिश्चित करें कि यह PATH के माध्यम से सुलभ है।
अपने Cargo.toml में RustTLSX जोड़ें:
[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 प्रमुख ब्राउज़रों में 30 से अधिक ब्राउज़र प्रोफ़ाइल का समर्थन करता है:
// 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 पहिए का पुन: आविष्कार करने के बजाय सिद्ध उत्कृष्टता की नींव पर बनाया गया है। हम bogdanfinn की संकलित लाइब्रेरीज़ (.dll/.so/.dylib) का उपयोग FFI के माध्यम से करते हैं, क्योंकि:
शोध निवेश: Bogdanfinn ने ब्राउज़र TLS व्यवहार को रिवर्स-इंजीनियर करने में हज़ारों घंटे लगाए हैं। इस शोध को दोहराने में वर्षों लगेंगे और संभवतः बेहतर परिणाम नहीं मिलेंगे।
युद्ध-परीक्षित विश्वसनीयता: इन लाइब्रेरीज़ का उपयोग दुनिया भर के प्रमुख सुरक्षा फर्मों, गोपनीयता टूल और शोध संस्थानों द्वारा किया जाता है। इन्हें हर प्रमुख सुरक्षा प्रणाली के विरुद्ध परीक्षण किया गया है।
निरंतर विकास: ब्राउज़र फ़िंगरप्रिंट लगातार बदलते रहते हैं। bogdanfinn की लाइब्रेरीज़ को नए ब्राउज़र संस्करणों और सुरक्षा प्रणाली अपडेट से मेल खाने के लिए नियमित अपडेट मिलते हैं।
प्रदर्शन अनुकूलन: नेटिव C/Go कार्यान्वयन गति और मेमोरी दक्षता के लिए अत्यधिक अनुकूलित है, जो शुद्ध Rust कार्यान्वयन से बेहतर प्रदर्शन देता है।
रनटाइम डायनामिक लोडिंग: स्थिर लिंकिंग जटिलता को समाप्त करते हुए प्रदर्शन बनाए रखने के लिए लाइब्रेरीज़ को FFI का उपयोग करके ऑन-डिमांड लोड किया जाता है।
मेमोरी प्रबंधन: Rust का स्वामित्व मॉडल नेटिव लाइब्रेरीज़ के साथ सुरक्षित इंटरैक्शन सुनिश्चित करता है, जो C/C++ कार्यान्वयन में आम मेमोरी लीक और यूज़-आफ्टर-फ्री बग को रोकता है।
त्रुटि प्रबंधन: टाइप सुरक्षा बनाए रखते हुए व्यापक Result-आधारित त्रुटि प्रबंधन विस्तृत डायग्नोस्टिक्स प्रदान करता है।
कनेक्शन प्रबंधन: ब्राउज़र-सटीक व्यवहार पैटर्न के साथ TLS कनेक्शनों की बुद्धिमान पूलिंग और पुन: उपयोग।
अंतर्निहित लाइब्रेरीज़ ब्राउज़र TLS व्यवहार के हर पहलू का प्रबंधन करती हैं:
use rust_tlsx::{TlsClient, BrowserProfile};
fn main() -> anyhow::Result<()> {
let client = TlsClient::new(BrowserProfile::Chrome109);
let response = client.get("https://httpbin.org/get")?;
println!("Status: {}", response.status);
println!("Body: {}", response.body);
Ok(())
}
use rust_tlsx::{TlsClient, BrowserProfile};