icookforms 0.1.0

The World's Reference Cookie Audit Software - Complete Security & Compliance Analysis
Documentation
[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]
# Async runtime
tokio = { version = "1.35", features = ["full"] }
futures = "0.3"

# HTTP client (optional for scanner feature)
reqwest = { version = "0.11", features = ["json", "cookies", "rustls-tls"], default-features = false, optional = true }
rustls = "0.21"
webpki-roots = "0.25"

# Cookie parsing & handling
biscotti = "0.1"
cookie = "0.18"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
toml = "0.8"

# CLI (optional for cli feature)
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"

# Logging & tracing
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"

# Error handling
thiserror = "1.0"
anyhow = "1.0"

# Date & Time
chrono = { version = "0.4", features = ["serde"] }
time = "0.3"

# URL parsing
url = "2.5"
publicsuffix = "2.2"

# Cryptography
sha2 = "0.10"
hmac = "0.12"
aes-gcm = "0.10"
base64 = "0.21"
hex = "0.4"
subtle = "2.5"

# Regular expressions (optional for analyzer feature)
regex = { version = "1.10", optional = true }

# Database
rusqlite = { version = "0.30", features = ["bundled"] }
sled = "0.34"

# HTML/JS parsing (optional for scanner feature)
scraper = { version = "0.18", optional = true }
html5ever = "0.26"
ego-tree = "0.6"

# PDF generation (optional for reporter feature)
printpdf = { version = "0.7", optional = true }

# Networking
trust-dns-resolver = "0.23"
ipnetwork = "0.20"

# Security utilities
ring = "0.17"
constant_time_eq = "0.3"
rand = "0.8"

# UUID generation
uuid = { version = "1.6", features = ["v4", "serde"] }

# Utilities
once_cell = "1.19"
lazy_static = "1.4"
itertools = "0.12"
rayon = "1.8"

# Machine Learning (for ml_analyzer module)
smartcore = "0.3"
ndarray = "0.15"
statrs = "0.17"

[dev-dependencies]
# Testing
proptest = "1.4"
quickcheck = "1.0"
tempfile = "3.8"
mockito = "1.2"
wiremock = "0.5"

# Benchmarking
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"]