[package] name = "secretumvault" version = "0.1.0" edition = "2021" authors = ["Jesús Pérez "] description = "Post-quantum ready secrets management system" license = "Apache-2.0" [features] default = ["openssl", "filesystem", "server", "surrealdb-storage"] # Crypto backends openssl = ["dep:openssl"] aws-lc = ["aws-lc-rs"] pqc = [] # Storage backends filesystem = [] surrealdb-storage = ["surrealdb/kv-mem"] etcd-storage = ["etcd-client"] postgresql-storage = ["sqlx"] # Components server = ["axum", "tower-http", "tokio-rustls", "rustls-pemfile", "rustls"] cli = ["clap", "reqwest"] cedar = ["cedar-policy"] [dependencies] # Core tokio = { version = "1.48", features = ["full"] } async-trait = "0.1" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.9" thiserror = "2.0" anyhow = "1.0" chrono = { version = "0.4", features = ["serde"] } tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["json"] } # Crypto aws-lc-rs = { version = "1.15", features = ["unstable"], optional = true } openssl = { version = "0.10", optional = true } aes-gcm = "0.10" chacha20poly1305 = "0.10" rand = "0.9" # Shamir Secret Sharing sharks = "0.5" # Cedar policies cedar-policy = { version = "4.8", optional = true } # Storage surrealdb = { version = "2.4", optional = true, features = ["kv-mem"] } etcd-client = { version = "0.17", optional = true } sqlx = { version = "0.8", features = ["postgres", "runtime-tokio-native-tls"], optional = true } # Server axum = { version = "0.8", optional = true, features = ["macros"] } tower-http = { version = "0.6", optional = true, features = ["cors", "trace"] } tower = "0.5" tokio-rustls = { version = "0.26", optional = true } rustls-pemfile = { version = "2.2", optional = true } rustls = { version = "0.23", optional = true } # HTTP Client reqwest = { version = "0.12", features = ["json"], optional = true } # CLI clap = { version = "4.5", optional = true, features = ["derive", "env"] } # Utilities uuid = { version = "1.19", features = ["v4", "serde"] } base64 = "0.22" hex = "0.4" regex = "1.12" [dev-dependencies] tempfile = "3.24" wiremock = "0.6" proptest = "1.9" [[bin]] name = "svault" path = "src/main.rs" required-features = ["server"] [profile.release] opt-level = 3 lto = true codegen-units = 1 strip = true [profile.dev] split-debuginfo = "packed"