pub struct Client {
pub cookie_store: Arc<RwLock<CookieStore>>,
pub hint_cache: Arc<RwLock<HashSet<String>>>,
pub alt_svc_cache: AltSvcCache,
pub tls_session_cache: Arc<Mutex<HashMap<String, SslSession>>>,
/* 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.
tls_session_cache: Arc<Mutex<HashMap<String, SslSession>>>A synchronized cache of TLS sessions for resumption, keyed by origin/host.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new Client with a Chrome profile auto-matched to the host OS.
By default, this constructor initializes a ClientBuilder and compiles the default
profile to the active host platform (e.g. chrome_148 on Linux/macOS/Windows).
If builder initialization fails, it statefully falls back to the static chrome_148
auto-profile to guarantee uninterrupted transport-level compliance.
Sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Returns a ClientBuilder to configure a specialized Client instance.
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
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>
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>
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