[package]
edition = "2021"
rust-version = "1.85"
name = "captchaforge"
version = "0.2.13"
authors = ["Santh Project <contact@santh.dev>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Automatic CAPTCHA detection and multi-strategy solving for chromiumoxide-driven headless browsers (Cloudflare Turnstile, reCAPTCHA v2/v3, hCaptcha, image grids, audio, sliders)."
readme = "README.md"
keywords = [
"captcha",
"headless-browser",
"chromiumoxide",
"turnstile",
"recaptcha",
]
categories = [
"web-programming",
"authentication",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/santhsecurity/captchaforge"
[lib]
name = "captchaforge"
path = "src/lib.rs"
[[example]]
name = "architecture_proof"
path = "examples/architecture_proof.rs"
[[test]]
name = "captcha_type_display"
path = "tests/captcha_type_display.rs"
[[test]]
name = "chaos_behavior"
path = "tests/chaos_behavior.rs"
[[test]]
name = "chaos_frame"
path = "tests/chaos_frame.rs"
[[test]]
name = "chaos_resilience"
path = "tests/chaos_resilience.rs"
[[test]]
name = "chaos_solver"
path = "tests/chaos_solver.rs"
[[test]]
name = "community_rules"
path = "tests/community_rules.rs"
[[test]]
name = "fuzz_smoke"
path = "tests/fuzz_smoke.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "integration_behavior"
path = "tests/integration_behavior.rs"
[[test]]
name = "integration_browser"
path = "tests/integration_browser.rs"
[[test]]
name = "integration_chain_wires"
path = "tests/integration_chain_wires.rs"
[[test]]
name = "integration_concurrent"
path = "tests/integration_concurrent.rs"
[[test]]
name = "integration_cross_module"
path = "tests/integration_cross_module.rs"
[[test]]
name = "integration_detect_all_types"
path = "tests/integration_detect_all_types.rs"
[[test]]
name = "integration_errors"
path = "tests/integration_errors.rs"
[[test]]
name = "integration_frame"
path = "tests/integration_frame.rs"
[[test]]
name = "integration_solvers"
path = "tests/integration_solvers.rs"
[[test]]
name = "pattern_store"
path = "tests/pattern_store.rs"
[[test]]
name = "property_behavior"
path = "tests/property_behavior.rs"
[[test]]
name = "property_captcha_type"
path = "tests/property_captcha_type.rs"
[[test]]
name = "property_detect"
path = "tests/property_detect.rs"
[[test]]
name = "property_frame"
path = "tests/property_frame.rs"
[[test]]
name = "property_json"
path = "tests/property_json.rs"
[[test]]
name = "property_pattern"
path = "tests/property_pattern.rs"
[[test]]
name = "property_solve_method"
path = "tests/property_solve_method.rs"
[[test]]
name = "property_solver"
path = "tests/property_solver.rs"
[[test]]
name = "property_url"
path = "tests/property_url.rs"
[[test]]
name = "serde_roundtrip"
path = "tests/serde_roundtrip.rs"
[[test]]
name = "snapshot_structures"
path = "tests/snapshot_structures.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22"
[dependencies.chromiumoxide]
version = "0.9"
default-features = true
[dependencies.futures-util]
version = "0.3"
[dependencies.rand]
version = "0.8"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"multipart",
"rustls-tls",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2"
[dev-dependencies.futures-util]
version = "0.3"
[dev-dependencies.insta]
version = "1.41"
features = [
"json",
"redactions",
]
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.scraper]
version = "0.20"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.which]
version = "7"
[lints.rust]
unsafe_code = "forbid"