# scuttle — Scuttle, a next-generation open source data sanitization framework # # Workspace manifest. Layered crate layout mirrors §14 of MANIFEST.md. # Lower layers must never depend on higher layers (compile-time enforced # by the crate graph; see docs/MANIFEST.md §5). [workspace] resolver = "2" members = [ "crates/scuttle-hash", "crates/scuttle-prng", "crates/scuttle-devices", "crates/scuttle-media", "crates/scuttle-methods", "crates/scuttle-verify", "crates/scuttle-audit", "crates/scuttle-profiles", "crates/scuttle-pdf", "crates/scuttle-freespace", "crates/scuttle-policy", "crates/scuttle-benchmark", "crates/scuttle-firmware", "crates/scuttle-signing", "crates/scuttle-smart", "crates/scuttle-tpm", "crates/scuttle-scheduler", "crates/scuttle-tui", "crates/scuttle-batch", "crates/scuttle-jsonapi", "crates/scuttle-security", "crates/scuttle-conformance", "crates/scuttle-core", "crates/scuttle-cli", ] [workspace.package] version = "1.0.0" edition = "2021" rust-version = "1.75" license = "GPL-2.0-or-later" authors = ["Jeremy Anderson "] repository = "https://dcos.net/scuttle" homepage = "https://dcos.net" [workspace.dependencies] # Internal crates scuttle-hash = { path = "crates/scuttle-hash" } scuttle-prng = { path = "crates/scuttle-prng" } scuttle-devices = { path = "crates/scuttle-devices" } scuttle-media = { path = "crates/scuttle-media" } scuttle-methods = { path = "crates/scuttle-methods" } scuttle-verify = { path = "crates/scuttle-verify" } scuttle-audit = { path = "crates/scuttle-audit" } scuttle-profiles = { path = "crates/scuttle-profiles" } scuttle-pdf = { path = "crates/scuttle-pdf" } scuttle-freespace = { path = "crates/scuttle-freespace" } scuttle-policy = { path = "crates/scuttle-policy" } scuttle-benchmark = { path = "crates/scuttle-benchmark" } scuttle-firmware = { path = "crates/scuttle-firmware" } scuttle-signing = { path = "crates/scuttle-signing" } scuttle-smart = { path = "crates/scuttle-smart" } scuttle-tpm = { path = "crates/scuttle-tpm" } scuttle-scheduler = { path = "crates/scuttle-scheduler" } scuttle-tui = { path = "crates/scuttle-tui" } scuttle-batch = { path = "crates/scuttle-batch" } scuttle-jsonapi = { path = "crates/scuttle-jsonapi" } scuttle-security = { path = "crates/scuttle-security" } scuttle-conformance= { path = "crates/scuttle-conformance" } scuttle-core = { path = "crates/scuttle-core" } scuttle-cli = { path = "crates/scuttle-cli" } # External crates (pinned to keep builds reproducible — see MANIFEST §11) sha2 = "0.10" sha3 = "0.10" blake2 = "0.10" blake3 = "1.5" chacha20 = "0.9" cipher = { version = "0.4", features = ["dev"] } aes = "0.8" ctr = "0.9" hex = "0.4" uuid = { version = "1.10", features = ["v4", "serde"] } serde = { version = "1", features = ["derive"] } serde_json = "1" toml = "0.8" chrono = { version = "0.4", features = ["serde"] } clap = { version = "4.5", features = ["derive", "wrap_help"] } anyhow = "1" thiserror = "1" log = "0.4" env_logger = "0.11" nix = { version = "0.29", features = ["fs", "ioctl", "user"] } libc = "0.2" # v0.3 modern providers: salsa20 = "0.10" ascon-aead= "0.5" # v0.5 signing + exporters: ed25519-dalek = { version = "2.1", features = ["rand_core"] } rand = "0.8" rand_core = "0.6" serde_yaml = "0.9" # v0.7 TUI + scheduler + batch + JSON API: ratatui = "0.28" crossterm = "0.28" # v0.9 security hardening: zeroize = { version = "1.8", features = ["alloc"] } subtle = "2.5" [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 debug = false strip = true [profile.release-debug] inherits = "release" debug = true strip = false