# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.70"
name = "chromey"
version = "2.46.39"
authors = ["j-mendez <jeff@spider.cloud>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Concurrent chrome devtools protocol automation library for Rust"
homepage = "https://github.com/spider-rs/chromey"
readme = "README.md"
keywords = [
    "chrome",
    "cdp",
    "puppeteer",
    "automation",
    "playwright",
]
categories = [
    "web-programming",
    "api-bindings",
    "development-tools::testing",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/spider-rs/chromey"

[features]
_cache = [
    "dep:http-global-cache",
    "dep:http-cache",
    "dep:http-cache-semantics",
    "dep:lol_html",
    "dep:tokio-stream",
    "dep:http-cache-reqwest",
    "dep:auto_encoder",
    "dep:blake3",
    "dep:hex",
    "dep:dashmap",
    "dep:spider_remote_cache",
    "_cache_stream_disk",
]
_cache_stream_disk = []
_fetcher-native-tokio = [
    "fetcher",
    "spider_chromiumoxide_fetcher/_native-tokio",
]
_fetcher-rusttls-tokio = [
    "fetcher",
    "spider_chromiumoxide_fetcher/_rustls-tokio",
]
adblock = ["dep:adblock"]
adblock_easylist = [
    "adblock",
    "dep:native-tls",
]
auto-detect-executable = ["dep:which"]
bytes = []
cache = [
    "_cache",
    "http-global-cache/cache",
]
cache_mem = [
    "_cache",
    "http-global-cache/cache_mem",
]
chrome_tls_connection = ["tokio-tungstenite/native-tls"]
collect_metrics = []
default = [
    "bytes",
    "simd",
    "default-tls",
    "serde0",
    "auto-detect-executable",
]
default-tls = ["reqwest/default-tls"]
dynamic-versions = ["spider_fingerprint/dynamic-versions"]
fetcher = []
firewall = ["dep:spider_firewall"]
firewall-default = [
    "firewall",
    "spider_firewall/default",
]
firewall-rustls = [
    "firewall",
    "spider_firewall/rustls",
]
io_uring = ["dep:io-uring"]
rust-tls = ["reqwest/rustls"]
serde0 = ["spider_chromiumoxide_cdp/serde0"]
serde_stacker = [
    "dep:serde_stacker",
    "serde_json/unbounded_depth",
]
simd = ["dep:sonic-rs"]
stream = ["tokio-tungstenite/stream"]

[lib]
name = "chromiumoxide"
path = "src/lib.rs"

[[example]]
name = "block-navigation"
path = "examples/block-navigation.rs"

[[example]]
name = "bytes-control"
path = "examples/bytes-control.rs"

[[example]]
name = "connect"
path = "examples/connect.rs"

[[example]]
name = "console-logs"
path = "examples/console-logs.rs"

[[example]]
name = "evaluate"
path = "examples/evaluate.rs"

[[example]]
name = "fetcher-tokio"
path = "examples/fetcher-tokio.rs"
required-features = ["_fetcher-native-tokio"]

[[example]]
name = "http_cache"
path = "examples/http_cache.rs"
required-features = ["cache"]

[[example]]
name = "httpfuture"
path = "examples/httpfuture.rs"

[[example]]
name = "iframe-workaround"
path = "examples/iframe-workaround.rs"

[[example]]
name = "incognito"
path = "examples/incognito.rs"

[[example]]
name = "interception"
path = "examples/interception.rs"

[[example]]
name = "js-binding-listener"
path = "examples/js-binding-listener.rs"

[[example]]
name = "pdf"
path = "examples/pdf.rs"

[[example]]
name = "screenshot"
path = "examples/screenshot.rs"

[[example]]
name = "simple-google"
path = "examples/simple-google.rs"

[[example]]
name = "storage-cookie"
path = "examples/storage-cookie.rs"

[[example]]
name = "wiki"
path = "examples/wiki.rs"

[[example]]
name = "wiki-tokio"
path = "examples/wiki-tokio.rs"

[[test]]
name = "browser_integration"
path = "tests/browser_integration.rs"

[[test]]
name = "cache_round_trip"
path = "tests/cache_round_trip.rs"

[[test]]
name = "remote_cache_e2e"
path = "tests/remote_cache_e2e.rs"

[[test]]
name = "session_cache_deadlock"
path = "tests/session_cache_deadlock.rs"

[[test]]
name = "wait_for"
path = "tests/wait_for.rs"

[[bench]]
name = "alloc_audit_bench"
path = "benches/alloc_audit_bench.rs"
harness = false

[[bench]]
name = "handler_bench"
path = "benches/handler_bench.rs"
harness = false

[[bench]]
name = "remote_cache_bench"
path = "benches/remote_cache_bench.rs"
harness = false
required-features = ["cache"]

[[bench]]
name = "simd_comparison"
path = "benches/simd_comparison.rs"
harness = false

[dependencies.adblock]
version = "0.12"
features = [
    "embedded-domain-resolver",
    "full-regex-handling",
]
optional = true
default-features = false

[dependencies.aho-corasick]
version = "1"

[dependencies.auto_encoder]
version = "0.1"
optional = true

[dependencies.base64]
version = "0.22"

[dependencies.blake3]
version = "1"
optional = true

[dependencies.case_insensitive_string]
version = "0.2"
features = [
    "compact",
    "serde",
]

[dependencies.dashmap]
version = "6"
optional = true

[dependencies.dunce]
version = "1"

[dependencies.fnv]
version = "1"

[dependencies.futures-util]
version = "0.3"

[dependencies.hashbrown]
version = "0.16"
default-features = true

[dependencies.hex]
version = "0.4"
optional = true

[dependencies.http-cache]
version = "1.0.0-alpha.5"
features = ["url-standard"]
optional = true
default-features = false

[dependencies.http-cache-reqwest]
version = "1.0.0-alpha.5"
optional = true
default-features = false

[dependencies.http-cache-semantics]
version = "3"
optional = true

[dependencies.http-global-cache]
version = "0.2.0"
features = ["cache_request"]
optional = true
default-features = false

[dependencies.lazy_static]
version = "1"

[dependencies.lol_html]
version = "2"
optional = true

[dependencies.memchr]
version = "2"

[dependencies.phf]
version = "0.13"
features = ["macros"]

[dependencies.pin-project-lite]
version = "0.2"

[dependencies.rand]
version = "0.10"

[dependencies.reqwest]
version = "0.13"
features = ["json"]
default-features = false

[dependencies.serde]
version = "1"
features = ["derive"]

[dependencies.serde_json]
version = "1"

[dependencies.serde_stacker]
version = "0.1"
optional = true

[dependencies.sonic-rs]
version = "0.5"
features = ["utf8_lossy"]
optional = true

[dependencies.spider_chromiumoxide_cdp]
version = "0.7"

[dependencies.spider_chromiumoxide_fetcher]
version = "0.8"
optional = true
default-features = false

[dependencies.spider_chromiumoxide_types]
version = "0.7"

[dependencies.spider_fingerprint]
version = "2"
features = [
    "serde",
    "headers",
    "std",
]
default-features = false

[dependencies.spider_firewall]
version = "2"
optional = true
default-features = false

[dependencies.spider_network_blocker]
version = "0"

[dependencies.spider_remote_cache]
version = "0.3"
optional = true
default-features = false

[dependencies.thiserror]
version = "2"

[dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "time",
    "fs",
    "macros",
    "process",
]

[dependencies.tokio-stream]
version = "0.1"
optional = true

[dependencies.tokio-tungstenite]
version = "0.29"

[dependencies.tracing]
version = "0.1"

[dependencies.url]
version = "2"

[dependencies.which]
version = "8"
optional = true

[dev-dependencies.anyhow]
version = "1"

[dev-dependencies.chrono]
version = "0.4"

[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]

[dev-dependencies.dashmap]
version = "6"

[dev-dependencies.futures-util]
version = "0.3"

[dev-dependencies.proc-macro2]
version = "1"

[dev-dependencies.quote]
version = "1"

[dev-dependencies.spider_remote_cache]
version = "0.3"
default-features = false

[dev-dependencies.tempfile]
version = "3.27.0"

[dev-dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "time",
    "macros",
]

[dev-dependencies.tracing-subscriber]
version = "0.3"

[build-dependencies.native-tls]
version = "0.2"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "0.7"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"

[target."cfg(windows)".dependencies.winreg]
version = "0.56"

[profile.release]
lto = "thin"
codegen-units = 1
