ghostwire 1.1.0

A Rust library to bypass Cloudflare anti-bot protections
Documentation
[package]
name = "ghostwire"
version = "1.1.0"
edition = "2024"
resolve = "3"
description = "A Rust library to bypass Cloudflare anti-bot protections"
license = "MIT"
repository = "https://github.com/nacht-org/ghostwire"
keywords = ["cloudflare", "scraper", "http", "bot-bypass"]
categories = ["web-programming", "network-programming"]

[dependencies]
reqwest = { version = "0.13.2", default-features = false, features = [
    "cookies",
    "gzip",
    "brotli",
    "deflate",
    "json",
    "multipart",
    "stream",
    "rustls",
    "socks",
    "http2",
    "charset",
    "form",
    "query",
] }
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
regex = "1"
scraper = "0.26"
html-escape = "0.2"
url = "2"
rand = "0.10"
thiserror = "2"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
chrono = { version = "0.4", features = ["serde"] }
futures = "0.3"
async-trait = "0.1"
rustls = { version = "0.23", features = ["ring"] }
rustls-pemfile = "2"
webpki-roots = "1.0"
reqwest_cookie_store = "0.10"
once_cell = "1"
base64 = "0.22"
http = "1"
bytes = "1"

# Optional JS engines (feature-gated)
v8         = { version = "146.9.0", optional = true }
boa_engine = { version = "0.19.1",  optional = true }
# Pins icu_locale to 2.1.1 to satisfy both temporal_capi 0.1.2 (^2.1.0)
# and icu_calendar 2.1.1 (~2.1.1) when js-v8 is enabled.
icu_locale = { version = "=2.1.1",  optional = true }

[dev-dependencies]
tokio-test = "0.4"
wiremock = "0.6"
pretty_assertions = "1"

[features]
default = []
capsolver   = []
twocaptcha  = []
anticaptcha = []
all-captcha = ["capsolver", "twocaptcha", "anticaptcha"]
js-v8  = ["dep:v8", "dep:icu_locale"]
js-boa = ["dep:boa_engine"]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true