Expand description
§http-quik
High-fidelity stealth transport engine for Chrome network identity parity.
http-quik provides low-level control over the entire protocol stack — from
TLS handshakes through HTTP/2 frame signaling — to make every outbound
connection indistinguishable from a genuine Chrome browser. It is the
transport layer of the Phantom Engine
and is designed for production agentic navigation at scale.
§The Problem
Modern anti-bot systems (Cloudflare, Akamai, DataDome) perform passive fingerprinting at multiple protocol layers:
- TLS (JA3/JA4) — cipher suite order, extension IDs, elliptic curves.
- HTTP/2 (Akamai) — SETTINGS values, pseudo-header ordering, stream priority.
- Client Hints —
sec-ch-ua-platformcross-checked against the TLS handshake.
Standard HTTP libraries (reqwest, hyper) fail these checks because they
use generic TLS stacks and default H2 settings. http-quik solves this with
a BoringSSL backend and forensic-level protocol replication.
§Core Features
- BoringSSL Integration — Full ClientHello control including GREASE, ECH, and extension permutation via raw FFI calls.
- Cross-Platform Profiles — Pre-configured identities for Chrome 134 on macOS, Windows, and Linux with OS-specific ALPS payloads and Client Hints.
- OS Auto-Detection —
Client::new()selects a profile matched to the host kernel, eliminating p0f mismatch flags without configuration. - Connection Pooling — Managed H2 session reuse to maintain consistent behavioral fingerprints across request chains.
- Stealth Redirects — A redirect state machine that handles
sec-fetch-*headers and method rotation identical to Chromium.
§Getting Started
use http_quik::Client;
#[tokio::main]
async fn main() -> Result<(), http_quik::Error> {
// Auto-detects host OS and uses the matching Chrome 134 profile.
let client = Client::new();
// Or target a specific platform explicitly:
// use http_quik::{Platform, profile::chrome_134};
// let client = Client::builder()
// .profile(chrome_134::profile(Platform::LinuxX64))
// .build()?;
let response = client.get("https://example.com").await?;
println!("Status: {}", response.status());
Ok(())
}§Safety & FFI
This crate uses boring and boring-sys for low-level TLS control. All
unsafe blocks are localized to the tls and client::connector modules
and carry // SAFETY: annotations documenting the invariants they rely on.
§Changelog
See CHANGELOG.md for versioned release notes.
Re-exports§
pub use crate::client::connect;pub use crate::client::Client;pub use crate::client::ClientBuilder;pub use crate::client::Response;pub use crate::error::Error;pub use crate::error::Result;pub use crate::profile::chrome_134::AKAMAI_FINGERPRINT;pub use crate::profile::chrome_134::JA3_HASH;pub use crate::profile::ChromeProfile;pub use crate::profile::Platform;