[package]
name = "zendriver"
description = "Async-first, undetectable browser automation via the Chrome DevTools Protocol"
version = "0.2.21"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
readme = "../../README.md"
homepage = "https://github.com/TurtIeSocks/zendriver-rs"
documentation = "https://docs.rs/zendriver"
keywords = ["browser", "automation", "cdp", "chrome", "stealth"]
categories = ["web-programming", "api-bindings"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[features]
default = []
integration-tests = ["dep:wiremock", "dep:serial_test", "interception", "expect", "cloudflare", "imperva", "datadome", "monitor", "tracker-blocking"]
stealth-tests = ["integration-tests"]
cloudflare-tests = ["cloudflare", "integration-tests"]
testing = ["zendriver-transport/testing"]
interception = ["dep:zendriver-interception"]
expect = []
cloudflare = ["interception", "dep:zendriver-cloudflare"]
imperva = ["interception", "dep:zendriver-imperva"]
imperva-tests = ["imperva", "integration-tests"]
datadome = ["interception", "dep:zendriver-datadome"]
datadome-tests = ["datadome", "integration-tests"]
geo = ["zendriver-stealth/geo"]
fetcher = ["dep:zendriver-fetcher"]
fetcher-network-tests = ["fetcher"]
monitor = []
tracker-blocking = ["interception", "dep:reqwest", "dep:dirs"]
[dependencies]
zendriver-transport.workspace = true
zendriver-stealth.workspace = true
zendriver-interception = { workspace = true, optional = true }
zendriver-cloudflare = { workspace = true, optional = true }
zendriver-imperva = { workspace = true, optional = true }
zendriver-datadome = { workspace = true, optional = true }
zendriver-fetcher = { workspace = true, optional = true }
async-trait.workspace = true
chromiumoxide_cdp.workspace = true
tokio.workspace = true
tokio-util.workspace = true
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true
tracing.workspace = true
url.workspace = true
percent-encoding.workspace = true
tempfile.workspace = true
futures.workspace = true
regex.workspace = true
bitflags.workspace = true
unicode-segmentation.workspace = true
rand.workspace = true
base64.workspace = true
zip.workspace = true
wiremock = { workspace = true, optional = true }
serial_test = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
dirs = { workspace = true, optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
win32job = "2.0"
[dev-dependencies]
tokio-test.workspace = true
insta.workspace = true
tracing-subscriber.workspace = true
sysinfo.workspace = true
zendriver-transport = { workspace = true, features = ["testing"] }
[[test]]
name = "datadome_v0"
required-features = ["datadome"]
[[example]]
name = "hello"
required-features = []
[[example]]
name = "set_user_agent"
required-features = []
[[example]]
name = "browserscan"
required-features = []
[[example]]
name = "highlight_links"
required-features = []
[[example]]
name = "form_demo"
required-features = []
[[example]]
name = "wait_for_page"
required-features = []
[[example]]
name = "multi_tab"
required-features = []
[[example]]
name = "iframe_inspect"
required-features = []
[[example]]
name = "cookies_persist"
required-features = []
[[example]]
name = "local_storage_demo"
required-features = []
[[example]]
name = "nav_history"
required-features = []
[[example]]
name = "downloads_dir"
required-features = []
[[example]]
name = "proxy_auth"
required-features = ["interception"]
[[example]]
name = "browser_context_isolation"
required-features = ["interception"]
[[example]]
name = "intercept_block_ads"
required-features = ["interception"]
[[example]]
name = "intercept_modify_headers"
required-features = ["interception"]
[[example]]
name = "expect_login_response"
required-features = ["expect"]
[[example]]
name = "cloudflare_bypass"
required-features = ["cloudflare"]
[[example]]
name = "imperva_bypass"
required-features = ["imperva"]
[[example]]
name = "fetcher_demo"
required-features = ["fetcher"]
[[example]]
name = "persona_basic"
required-features = []
[[example]]
name = "network_monitor"
required-features = ["monitor"]
[[example]]
name = "browser_request"
required-features = []