[workspace] members = [ "crates/platform-config", "crates/service-clients", "crates/ai-service", "crates/extension-registry", "crates/orchestrator", "crates/control-center", "crates/control-center-ui", "crates/vault-service", "crates/rag", "crates/detector", "crates/mcp-server", "crates/provisioning-daemon", ] resolver = "2" [workspace.package] authors = ["Jesus Perez "] edition = "2021" license = "MIT" repository = "https://github.com/jesusperezlorenzo/provisioning" version = "1.0.11" [workspace.dependencies] # ============================================================================ # SHARED ASYNC RUNTIME AND CORE LIBRARIES # ============================================================================ async-trait = "0.1" futures = "0.3" tokio = { version = "1.49", features = ["full"] } tokio-util = "0.7" # ============================================================================ # SERIALIZATION AND DATA HANDLING # ============================================================================ chrono = { version = "0.4", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.9" uuid = { version = "1.19", features = ["v4", "serde"] } # ============================================================================ # ERROR HANDLING # ============================================================================ anyhow = "1.0" thiserror = "2.0" # ============================================================================ # LOGGING AND TRACING # ============================================================================ log = "0.4" tracing = "0.1" tracing-appender = "0.2" tracing-subscriber = { version = "0.3", features = ["env-filter"] } # ============================================================================ # WEB SERVER AND NETWORKING # ============================================================================ axum = { version = "0.8", features = ["ws", "macros"] } hyper = "1.8" reqwest = { version = "0.13", features = ["json", "rustls"], default-features = false } tower = { version = "0.5", features = ["full"] } tower-http = { version = "0.6", features = [ "cors", "trace", "fs", "compression-gzip", "timeout", ] } # ============================================================================ # CLI AND CONFIGURATION # ============================================================================ clap = { version = "4.5", features = ["derive", "env"] } config = "0.15" # ============================================================================ # DATABASE AND STORAGE # ============================================================================ sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid"] } surrealdb = { version = "2.4", features = ["kv-mem", "protocol-ws", "protocol-http"] } # ============================================================================ # SECURITY AND CRYPTOGRAPHY # ============================================================================ aes-gcm = "0.10" argon2 = "0.5" base64 = "0.22" hmac = "0.12" jsonwebtoken = { version = "10.2", features = ["rust_crypto"] } rand = { version = "0.9", features = ["std_rng", "os_rng"] } ring = "0.17" sha2 = "0.10" # AWS SDK for KMS aws-config = "1" aws-credential-types = "1" aws-sdk-kms = "1" # ============================================================================ # VALIDATION AND REGEX # ============================================================================ regex = "1.12" validator = { version = "0.20", features = ["derive"] } # ============================================================================ # GRAPH ALGORITHMS AND UTILITIES # ============================================================================ petgraph = "0.8" # ============================================================================ # ADDITIONAL SHARED DEPENDENCIES # ============================================================================ # System utilities dirs = "6.0" # Filesystem operations notify = "8.2" walkdir = "2.5" # Statistics and templates statistics = "0.4" tera = "1.20" # Additional cryptography hkdf = "0.12" rsa = "0.9.9" zeroize = { version = "1.8", features = ["derive"] } # Additional security constant_time_eq = "0.4" subtle = "2.6" # Caching and storage redis = { version = "1.0", features = ["tokio-comp", "connection-manager"] } # Tower services tower-service = "0.3" tower_governor = "0.8" # Scheduling cron = "0.15" tokio-cron-scheduler = "0.15" # Policy engine cedar-policy = "4.8" # URL handling url = "2.5" # Icons and UI icondata = "0.7" leptos_icons = "0.7" # Image processing image = { version = "0.25", default-features = false, features = ["png"] } qrcode = "0.14" # Authentication hex = "0.4" lazy_static = "1.5" totp-rs = { version = "5.7", features = ["qr"] } webauthn-rs = "0.5" webauthn-rs-proto = "0.5" # Additional serialization serde-wasm-bindgen = "0.6" # Gloo utilities (for WASM) gloo-net = { version = "0.6", features = ["http", "websocket"] } gloo-storage = "0.3" gloo-timers = "0.3" gloo-utils = { version = "0.2", features = ["serde"] } # Plotting and canvas plotters = "0.3" plotters-canvas = "0.3" # WASM utilities console_error_panic_hook = "0.1" js-sys = "0.3" tracing-wasm = "0.2" wasm-bindgen-futures = "0.4" # Random number generation getrandom = { version = "0.3" } # ============================================================================ # TUI (Terminal User Interface) # ============================================================================ crossterm = "0.29" ratatui = { version = "0.30", features = ["all-widgets", "serde"] } # ============================================================================ # WASM AND FRONTEND DEPENDENCIES (for control-center-ui) # ============================================================================ leptos = { version = "0.8", features = ["csr"] } leptos_meta = { version = "0.8", features = ["default"] } leptos_router = { version = "0.8" } wasm-bindgen = "0.2" # ============================================================================ # DEVELOPMENT AND TESTING DEPENDENCIES # ============================================================================ assert_matches = "1.5" criterion = { version = "0.8", features = ["html_reports"] } mockito = "1" tempfile = "3.24" tokio-test = "0.4" # Additional caching and binary discovery lru = "0.16" parking_lot = "0.12" which = "8" yaml-rust = "0.4" # ============================================================================ # RAG FRAMEWORK DEPENDENCIES (Rig) # ============================================================================ rig-core = "0.27" rig-surrealdb = "0.1" tokenizers = "0.22" # ============================================================================ # PROV-ECOSYSTEM DAEMON (replaces cli-daemon) # ============================================================================ daemon-cli = { path = "../../submodules/prov-ecosystem/crates/daemon-cli" } # ============================================================================ # SECRETUMVAULT (Enterprise Secrets Management) # ============================================================================ secretumvault = { path = "../../submodules/secretumvault" } # ============================================================================ # BYTES MANIPULATION # ============================================================================ bytes = "1.5" [workspace.metadata] description = "Provisioning Platform - Rust workspace for cloud infrastructure automation tools" # Profile configurations shared across all workspace members [profile.dev] codegen-units = 256 debug = true debug-assertions = true incremental = true lto = false opt-level = 0 overflow-checks = true panic = 'unwind' [profile.release] codegen-units = 1 lto = true opt-level = 3 panic = "abort" strip = "debuginfo" # Fast release profile for development [profile.dev-release] debug = true inherits = "release" lto = "thin" opt-level = 2 # Profile for benchmarks [profile.bench] debug = true inherits = "release"