scuttle/Cargo.toml

119 lines
3.8 KiB
TOML
Executable File

# 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 <scuttle@dcos.net>"]
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