Cargo.toml
Rama main · réplica de lectura del repositorio original.
[workspace]
resolver = "2"
members = [
"crates/tcfs-core",
"crates/tcfs-secrets",
"crates/tcfs-storage",
"crates/tcfs-chunks",
"crates/tcfs-crypto",
"crates/tcfs-sync",
"crates/tcfs-vfs",
"crates/tcfs-fuse",
"crates/tcfs-nfs",
"crates/tcfs-cloudfilter",
"crates/tcfs-sops",
"crates/tcfsd",
"crates/tcfs-cli",
"crates/tcfs-tui",
"crates/tcfs-mcp",
"crates/tcfs-file-provider",
"crates/tcfs-dbus",
"crates/tcfs-auth",
"tests/e2e",
]
[workspace.package]
version = "0.12.17"
edition = "2021"
authors = ["TummyCrypt Contributors"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/Jesssullivan/tummycrypt"
rust-version = "1.93"
[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1", features = ["net"] }
tokio-util = { version = "0.7" }
# gRPC
tonic = { version = "0.14" }
# tonic 0.14: prost codec runtime + build tool (replaces tonic-build + prost-build)
tonic-prost = { version = "0.14" }
tonic-prost-build = { version = "0.14" }
prost = { version = "0.14" }
# Storage abstraction
opendal = { version = "0.55", features = ["services-s3"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream"] }
# Cryptography / secrets
age = { version = "0.11", features = ["armor"] }
keepass = { version = "0.8" }
zeroize = { version = "1", features = ["derive"] }
secrecy = { version = "0.10", features = ["serde"] }
rpassword = { version = "7" }
# E2E encryption (Phase 2 sprint)
chacha20poly1305 = { version = "0.10" }
argon2 = { version = "0.5" }
aes-siv = { version = "0.7" }
hkdf = { version = "0.12" }
sha2 = { version = "0.10" }
rand = { version = "0.8" }
# Ed25519 signing for the device registry (TIN-1417 B4). Already present in the
# lockfile transitively (async-nats -> nkeys); pinned here for direct use.
ed25519-dalek = { version = "2" }
bip39 = { version = "2" }
keyring = { version = "3" }
# SOPS decryption deps
serde_norway = { version = "0.9" }
aes-gcm = { version = "0.10" }
base64 = { version = "0.22" }
# Hashing and chunking
blake3 = { version = "1" }
fastcdc = { version = "3" }
zstd = { version = "0.13" }
# Local state (optional, Phase 2)
rocksdb = { version = "0.24" }
# Messaging
async-nats = { version = "0.47" }
futures = { version = "0.3" }
bytes = { version = "1" }
# System integration
service-manager = { version = "0.11" }
notify = { version = "8" }
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1" }
toml = { version = "0.8" }
unicode-normalization = { version = "0.1" }
unicode-casefold = { version = "0.2" }
url = { version = "2" }
# CLI
clap = { version = "4", features = ["derive", "env"] }
# TUI
ratatui = { version = "0.30" }
crossterm = { version = "0.29" }
# MCP (Model Context Protocol)
rmcp = { version = "0.16", features = ["server", "transport-io", "macros", "schemars"] }
schemars = { version = "0.8" }
# Progress display
indicatif = { version = "0.18" }
# HTTP server (for metrics endpoint) + gRPC transport
axum = { version = "0.8" }
hyper = { version = "1" }
hyper-util = { version = "0.1", features = ["tokio"] }
tower = { version = "0.5", features = ["util"] }
# Error handling
thiserror = { version = "1" }
anyhow = { version = "1" }
# Logging / tracing
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Metrics
prometheus-client = { version = "0.24" }
# Parallelism
rayon = { version = "1" }
# System interfaces
libc = { version = "0.2" }
# UUID
uuid = { version = "1", features = ["v4"] }
# Auth
async-trait = { version = "0.1" }
chrono = { version = "0.4", features = ["serde"] }
# OpenSSL (transitive via webauthn-rs; vendored feature for cross-compilation)
openssl = { version = "0.10" }
# Glob patterns
glob = { version = "0.3" }
# UniFFI (iOS FFI bridge)
uniffi = { version = "0.28" }
# Testing
proptest = { version = "1" }
tempfile = { version = "3" }
tokio-test = { version = "0.4" }
divan = { version = "0.1" }
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
strip = true
[profile.dev]
opt-level = 0
debug = true