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 HTTP client engine enforcing deterministic Chrome identity parity.
The Client is the primary interface for managing cross-origin requests. It maintains
global state across its clones, enabling shared connection pooling and cookie persistence.
Key operational guarantees include:
- Transport Decoupling: Transparently routes requests over H2 or H3 based on cache states.
- Connection Pooling: Reuses established multiplexed streams isolated by proxy and origin.
- Automated State Tracking: Synchronizes cookies, redirects, and client-hints seamlessly.
Fields§
A synchronized cookie jar enforcing RFC 6265 storage and cross-request persistence.
hint_cache: Arc<RwLock<HashSet<String>>>A cache tracking origins that explicitly solicited dynamic client hints (e.g. Accept-CH).
alt_svc_cache: AltSvcCacheThread-safe registry mapping origins to discovered Alt-Svc UDP/QUIC endpoints.
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