Skip to main content

Crate http_quik

Crate http_quik 

Source
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:

  1. TLS (JA3/JA4) — cipher suite order, extension IDs, elliptic curves.
  2. HTTP/2 (Akamai) — SETTINGS values, pseudo-header ordering, stream priority.
  3. Client Hintssec-ch-ua-platform cross-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-DetectionClient::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;

Modules§

client
High-level client, connection pooling, and request execution.
error
Crate-wide error types. Unified error surface for the quik transport stack.
profile
Chrome transport identity profiles.