
🦀 Стелс-HTTP-клиент для Rust. Имитирует TLS-отпечатки реальных браузеров для необнаруживаемых запросов. Быстрый, типобезопасный и создан для точной сетевой работы.
. Продвинутый скрытный HTTP-клиент для Rust.
Создан для разработчиков, заботящихся о конфиденциальности, которым нужен полный контроль над своим сетевым отпечатком.
Выглядит как браузер. Работает как браузер. Написан на Rust.
Построен на основе bogdanfinn/tls-client — ведущей библиотеки TLS-отпечатков, которой доверяют специалисты по безопасности по всему миру. Мы используем проверенные в бою общие библиотеки bogdanfinn (.dll/.so/.dylib) через FFI-привязки, потому что:
RustTLSX привносит эту проверенную технологию в Rust с типобезопасным и эргономичным API, который в 6 раз быстрее Python-альтернатив.
Современные веб-приложения анализируют каждый аспект ваших HTTP-запросов — не только заголовки и cookie, но и глубокие криптографические сигнатуры вашего TLS-рукопожатия. Стандартные HTTP-клиенты на Rust (reqwest, hyper, ureq) создают легко обнаруживаемые паттерны, которые сразу выдают автоматизированный трафик.
RustTLSX решает эту проблему, предоставляя:
Загрузите необходимую библиотеку TLS-клиента для вашей платформы из релизов tls-client:
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.
Добавьте RustTLSX в ваш 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 поддерживает более 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 обеспечивает безопасное взаимодействие с нативными библиотеками, предотвращая утечки памяти и ошибки use-after-free, распространенные в реализациях на C/C++.
Обработка ошибок: Исчерпывающая обработка ошибок на основе Result предоставляет подробную диагностику, сохраняя типобезопасность.
Управление соединениями: Интеллектуальный пул и повторное использование TLS-соединений с точными паттернами поведения браузера.