secretumvault/Cargo.toml

105 lines
2.7 KiB
TOML
Raw Normal View History

2025-12-22 21:34:01 +00:00
[package]
name = "secretumvault"
version = "0.1.0"
edition = "2021"
authors = ["Jesús Pérez <jesus@example.com>"]
description = "Post-quantum ready secrets management system"
license = "Apache-2.0"
[features]
2026-02-03 22:04:51 +00:00
default = ["openssl", "filesystem", "server", "surrealdb-storage", "pqc", "cli", "cedar"]
2025-12-22 21:34:01 +00:00
# Crypto backends
openssl = ["dep:openssl"]
aws-lc = ["aws-lc-rs"]
pqc = ["oqs"]
2025-12-22 21:34:01 +00:00
# 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", "axum-server", "hyper", "hyper-util"]
2025-12-22 21:34:01 +00:00
cli = ["clap", "reqwest"]
2026-02-03 22:04:51 +00:00
2025-12-22 21:34:01 +00:00
cedar = ["cedar-policy"]
[dependencies]
# Core
2026-02-03 22:04:51 +00:00
tokio = { version = "1.49", features = ["full"] }
2025-12-22 21:34:01 +00:00
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 }
2026-02-03 22:04:51 +00:00
oqs = { version = "0.11", optional = true }
hkdf = "0.12"
sha2 = "0.10"
2025-12-22 21:34:01 +00:00
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
2026-02-03 22:04:51 +00:00
surrealdb = { version = "2.6", optional = true, features = ["kv-mem"] }
etcd-client = { version = "0.18", optional = true }
2025-12-22 21:34:01 +00:00
sqlx = { version = "0.8", features = ["postgres", "runtime-tokio-native-tls"], optional = true }
# Server
axum = { version = "0.8", optional = true, features = ["macros"] }
axum-server = { version = "0.8", optional = true, features = ["tls-rustls"] }
2025-12-22 21:34:01 +00:00
tower-http = { version = "0.6", optional = true, features = ["cors", "trace"] }
tower = "0.5"
2026-02-03 22:04:51 +00:00
hyper = { version = "1.8", optional = true, features = ["server", "http1", "http2"] }
hyper-util = { version = "0.1", optional = true, features = ["tokio", "server", "server-auto"] }
2025-12-22 21:34:01 +00:00
tokio-rustls = { version = "0.26", optional = true }
rustls-pemfile = { version = "2.2", optional = true }
rustls = { version = "0.23", optional = true }
# HTTP Client
2026-02-03 22:04:51 +00:00
reqwest = { version = "0.13", features = ["json"], optional = true }
2025-12-22 21:34:01 +00:00
# CLI
clap = { version = "4.5", optional = true, features = ["derive", "env"] }
# Utilities
2026-02-03 22:04:51 +00:00
uuid = { version = "1.20", features = ["v4", "serde"] }
2025-12-22 21:34:01 +00:00
base64 = "0.22"
hex = "0.4"
regex = "1.12"
[dev-dependencies]
tempfile = "3.24"
2025-12-22 21:34:01 +00:00
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"