pub struct Client {
pub cookie_store: Arc<RwLock<CookieStore>>,
pub hint_cache: Arc<RwLock<HashSet<String>>>,
pub alt_svc_cache: AltSvcCache,
/* private fields */
}Expand description
A stateful, pooling HTTP client that enforces Chrome transport identity.
The Client is the primary entry point for the http-quik library. It manages:
- Connection Pooling: Reuses established H2 or H3 sessions to maintain persistent fingerprints.
- Cookie Persistence: A synchronized cookie jar shared across all requests.
- Stealth Redirects: Automatically follows redirects while mutating headers and methods to match Chromium’s behavioral markers.
- OS Auto-Detection: Defaults to a Chrome profile matched to the host OS.
- Dual-Stack H3 Routing: Seamlessly resolves Alt-Svc advertisements and executes stealth HTTP/3 fetches, falling back automatically to H2 on UDP blockages.
Fields§
A synchronized cookie jar shared across all requests.
hint_cache: Arc<RwLock<HashSet<String>>>A synchronized cache for Client Hints explicitly solicited by servers.
alt_svc_cache: AltSvcCacheThread-safe registry tracking servers Solicit Alt-Svc targets.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Client
impl RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
impl UnwindSafe for Client
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more