Ctrl K
ComunidadGuías…

Cargo.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
[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