[workspace] resolver = "2" members = [ "orchestrator", "control-center", "control-center-ui", "mcp-server", "installer", ] # Exclude any directories that shouldn't be part of the workspace exclude = [] [workspace.package] version = "0.1.0" edition = "2021" authors = ["Jesus Perez "] license = "MIT" repository = "https://github.com/jesusperezlorenzo/provisioning" [workspace.dependencies] # ============================================================================ # SHARED ASYNC RUNTIME AND CORE LIBRARIES # ============================================================================ tokio = { version = "1.40", features = ["full"] } tokio-util = "0.7" futures = "0.3" async-trait = "0.1" # ============================================================================ # SERIALIZATION AND DATA HANDLING # ============================================================================ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.9" uuid = { version = "1.18", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } # ============================================================================ # ERROR HANDLING # ============================================================================ anyhow = "1.0" thiserror = "2.0" # ============================================================================ # LOGGING AND TRACING # ============================================================================ tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-appender = "0.2" # ============================================================================ # WEB SERVER AND NETWORKING # ============================================================================ axum = { version = "0.8", features = ["ws", "macros"] } tower = { version = "0.5", features = ["full"] } tower-http = { version = "0.6", features = ["cors", "trace", "fs", "compression-gzip", "timeout"] } hyper = "1.7" reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false } # ============================================================================ # CLI AND CONFIGURATION # ============================================================================ clap = { version = "4.5", features = ["derive", "env"] } config = "0.15" # ============================================================================ # DATABASE AND STORAGE # ============================================================================ surrealdb = { version = "2.3", features = ["kv-rocksdb", "kv-mem", "protocol-ws", "protocol-http"] } sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid"] } # ============================================================================ # SECURITY AND CRYPTOGRAPHY # ============================================================================ ring = "0.17" jsonwebtoken = "9.3" argon2 = "0.5" base64 = "0.22" rand = "0.8" aes-gcm = "0.10" sha2 = "0.10" hmac = "0.12" # ============================================================================ # VALIDATION AND REGEX # ============================================================================ validator = { version = "0.20", features = ["derive"] } regex = "1.11" # ============================================================================ # GRAPH ALGORITHMS AND UTILITIES # ============================================================================ petgraph = "0.8" # ============================================================================ # ADDITIONAL SHARED DEPENDENCIES # ============================================================================ # System utilities dirs = "6.0" # Filesystem operations walkdir = "2.5" # Statistics and templates statistics = "0.4" tera = "1.20" # Additional cryptography hkdf = "0.12" rsa = "0.9" zeroize = { version = "1.8", features = ["derive"] } # Additional security constant_time_eq = "0.4" subtle = "2.6" # Caching and storage redis = { version = "0.32", features = ["tokio-comp", "connection-manager"] } rocksdb = "0.24" # Tower services tower-service = "0.3" tower_governor = "0.4" # Scheduling cron = "0.15" tokio-cron-scheduler = "0.14" # Policy engine cedar-policy = "4.5" # URL handling url = "2.5" # Icons and UI icondata = "0.6" leptos_icons = "0.3" # Image processing image = { version = "0.25", default-features = false, features = ["png"] } qrcode = "0.14" # Authentication totp-rs = { version = "5.7", features = ["qr"] } # Additional serialization serde-wasm-bindgen = "0.6" # Gloo utilities (for WASM) gloo-net = { version = "0.6", features = ["http", "websocket"] } gloo-storage = "0.3" gloo-utils = { version = "0.2", features = ["serde"] } gloo-timers = "0.3" # Plotting and canvas plotters = "0.3" plotters-canvas = "0.3" # WASM utilities wasm-bindgen-futures = "0.4" js-sys = "0.3" tracing-wasm = "0.2" console_error_panic_hook = "0.1" # Random number generation getrandom = { version = "0.2", features = ["js"] } # ============================================================================ # WASM AND FRONTEND DEPENDENCIES (for control-center-ui) # ============================================================================ wasm-bindgen = "0.2" leptos = { version = "0.6", features = ["csr"] } leptos_meta = { version = "0.6", features = ["csr"] } leptos_router = { version = "0.6", features = ["csr"] } # ============================================================================ # DEVELOPMENT AND TESTING DEPENDENCIES # ============================================================================ tokio-test = "0.4" tempfile = "3.10" criterion = { version = "0.7", features = ["html_reports"] } assert_matches = "1.5" [workspace.metadata] description = "Provisioning Platform - Rust workspace for cloud infrastructure automation tools" # Profile configurations shared across all workspace members [profile.dev] opt-level = 0 debug = true debug-assertions = true overflow-checks = true lto = false panic = 'unwind' incremental = true codegen-units = 256 [profile.release] opt-level = 3 lto = true codegen-units = 1 panic = "abort" strip = "debuginfo" # Fast release profile for development [profile.dev-release] inherits = "release" opt-level = 2 lto = "thin" debug = true # Profile for benchmarks [profile.bench] inherits = "release" debug = true