[package]
name = "icookforms"
version = "0.1.0"
edition = "2021"
authors = ["Guillaume Piron <guillaume-piron-dev@github.com>"]
license = "Apache-2.0"
description = "The World's Reference Cookie Audit Software - Complete Security & Compliance Analysis"
repository = "https://github.com/guillaume-piron-dev/ICookForms"
homepage = "https://github.com/guillaume-piron-dev/ICookForms"
documentation = "https://docs.rs/icookforms"
readme = "README.md"
keywords = ["cookie", "security", "gdpr", "ccpa", "audit"]
categories = ["web-programming", "network-programming", "command-line-utilities", "development-tools"]
rust-version = "1.75"
exclude = [
".github/",
"docs/",
"examples/",
"tests/fixtures/",
"*.md",
"*.log",
"*.db",
"target/",
]
[lib]
name = "icookforms"
path = "src/lib.rs"
[[bin]]
name = "icookforms"
path = "src/main.rs"
[dependencies]
tokio = { version = "1.35", features = ["full"] }
futures = "0.3"
reqwest = { version = "0.11", features = ["json", "cookies", "rustls-tls"], default-features = false, optional = true }
rustls = "0.21"
webpki-roots = "0.25"
biscotti = "0.1"
cookie = "0.18"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.8"
clap = { version = "4.4", features = ["derive", "cargo", "env"], optional = true }
indicatif = { version = "0.17", optional = true }
console = "0.15"
dialoguer = { version = "0.11", optional = true }
colored = "2.1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"
thiserror = "1.0"
anyhow = "1.0"
chrono = { version = "0.4", features = ["serde"] }
time = "0.3"
url = "2.5"
publicsuffix = "2.2"
sha2 = "0.10"
hmac = "0.12"
aes-gcm = "0.10"
base64 = "0.21"
hex = "0.4"
subtle = "2.5"
regex = { version = "1.10", optional = true }
rusqlite = { version = "0.30", features = ["bundled"] }
sled = "0.34"
scraper = { version = "0.18", optional = true }
html5ever = "0.26"
ego-tree = "0.6"
printpdf = { version = "0.7", optional = true }
trust-dns-resolver = "0.23"
ipnetwork = "0.20"
ring = "0.17"
constant_time_eq = "0.3"
rand = "0.8"
uuid = { version = "1.6", features = ["v4", "serde"] }
once_cell = "1.19"
lazy_static = "1.4"
itertools = "0.12"
rayon = "1.8"
smartcore = "0.3"
ndarray = "0.15"
statrs = "0.17"
[dev-dependencies]
proptest = "1.4"
quickcheck = "1.0"
tempfile = "3.8"
mockito = "1.2"
wiremock = "0.5"
criterion = { version = "0.5", features = ["html_reports"] }
[build-dependencies]
vergen = { version = "8.2", features = ["build", "git", "gitcl"] }
[[bench]]
name = "parser_bench"
harness = false
[[bench]]
name = "analyzer_bench"
harness = false
[[bench]]
name = "comprehensive_bench"
harness = false
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true
panic = "abort"
[profile.dev]
opt-level = 0
debug = true
[profile.bench]
inherits = "release"
[features]
default = ["cli", "scanner", "analyzer", "reporter"]
cli = ["clap", "indicatif", "dialoguer"]
scanner = ["reqwest", "scraper"]
analyzer = ["regex"]
reporter = ["printpdf"]
full = ["cli", "scanner", "analyzer", "reporter"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]