Skip to main content

StealthConfig

Struct StealthConfig 

Source
pub struct StealthConfig {
Show 23 fields pub webgl_spoof: bool, pub canvas_spoof: bool, pub audio_spoof: bool, pub human_mouse: bool, pub human_typing: bool, pub user_agent: Option<String>, pub headless: bool, pub chrome_path: Option<String>, pub patch_binary: bool, pub viewport_width: u32, pub viewport_height: u32, pub debug: bool, pub debug_dir: Option<String>, pub proxy: Option<String>, pub user_data_dir: Option<String>, pub proxy_username: Option<String>, pub proxy_password: Option<String>, pub cdp_timeout: u64, pub timezone: Option<String>, pub extra_args: Vec<String>, pub aggressive_cdp_evasion: bool, pub live_session: bool, pub filter_cdp: bool,
}
Expand description

Configuration for stealth features

Fields§

§webgl_spoof: bool

Spoof WebGL renderer/vendor

§canvas_spoof: bool

Spoof canvas fingerprint

§audio_spoof: bool

Spoof audio fingerprint

§human_mouse: bool

Use human-like mouse movements

§human_typing: bool

Use human-like typing

§user_agent: Option<String>

Custom user agent (None = random realistic)

§headless: bool

Headless mode

§chrome_path: Option<String>

Path to Chrome/Chromium binary

§patch_binary: bool

Patch Chrome binary to bypass detection

§viewport_width: u32

Viewport width

§viewport_height: u32

Viewport height

§debug: bool

Debug mode - log actions and save screenshots on error

§debug_dir: Option<String>

Directory for debug screenshots (defaults to current directory)

§proxy: Option<String>

Proxy server URL (e.g. “http://host:port”)

§user_data_dir: Option<String>

Durable Chrome user-data directory. When set, Eoka preserves the profile and its full fingerprint identity across browser launches.

§proxy_username: Option<String>

Proxy username for authenticated proxies

§proxy_password: Option<String>

Proxy password for authenticated proxies

§cdp_timeout: u64

CDP command timeout in seconds (default: 30, increase for slow proxies)

§timezone: Option<String>

IANA timezone (default: random from common US/EU timezones). Set to a specific value like “America/New_York” to control the timezone.

§extra_args: Vec<String>

Extra Chrome command-line arguments appended after standard stealth args. E.g. vec![“–use-fake-ui-for-media-stream”.into()] to auto-grant camera.

§aggressive_cdp_evasion: bool

Enable legacy, invasive CDP-marker hiding that proxies window.document and patches Object reflection APIs. It can break modern SPAs, so it is disabled by default. Prefer the normal WebDriver and fingerprint evasions.

§live_session: bool

Treat this as a session attached to a user-owned browser. When true, Browser::new_page/new_blank_page/attach_page skip injecting the evasion script. Defaults to false (set automatically by Browser::connect*).

§filter_cdp: bool

Drop “detectable” CDP commands like Runtime.enable silently. Defaults to true. Set to false in connect mode to get full DevTools-like control.

Implementations§

Source§

impl StealthConfig

Source

pub fn minimal() -> StealthConfig

Create a minimal config (no spoofing, no patching)

Source

pub fn visible() -> StealthConfig

Create a visible (non-headless) config

Source

pub fn debug() -> StealthConfig

Create a debug config (visible, with logging)

Source

pub fn live() -> StealthConfig

Config tuned for attaching to a user-owned browser via Browser::connect*.

Disables anything that touches the user’s Chrome state:

  • live_session — no evasion script injection on attached tabs
  • filter_cdp = false — full DevTools-equivalent CDP access
  • patch_binary = false — we don’t manage the binary
  • all spoofing off — the user’s browser already has its own fingerprint

Trait Implementations§

Source§

impl Clone for StealthConfig

Source§

fn clone(&self) -> StealthConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StealthConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for StealthConfig

Source§

fn default() -> StealthConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more