[workspace] members = [ "crates/nx9-wg-core", "crates/nx9-wg-db", "crates/nx9-wireguard", "crates/nx9-wg-network", "crates/nx9-wg-api", "crates/nx9-wg-ui", ] [workspace.package] version = "0.1.0" edition = "2024" [workspace.dependencies] # Internal crates nx9-wg-core = { path = "crates/nx9-wg-core" } nx9-wg-db = { path = "crates/nx9-wg-db" } nx9-wireguard = { path = "crates/nx9-wireguard" } nx9-wg-network = { path = "crates/nx9-wg-network" } nx9-wg-api = { path = "crates/nx9-wg-api" } nx9-wg-ui = { path = "crates/nx9-wg-ui" } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" toml = "0.8" # Async runtime tokio = { version = "1", features = ["full"] } # Date/time chrono = { version = "0.4", features = ["serde"] } # Identifiers uuid = { version = "1", features = ["v4", "serde"] } # Errors thiserror = "2" # Observability tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } # Crypto argon2 = "0.5" x25519-dalek = { version = "2", features = ["static_secrets"] } rand = "0.8" base64 = "0.22" sha2 = "0.10" # Network types ipnet = { version = "2", features = ["serde"] } # CLI clap = { version = "4", features = ["derive", "env", "string"] } # HTTP axum = { version = "0.8", features = ["ws", "macros"] } tower = "0.5" tower-http = { version = "0.7", features = ["trace", "cors", "compression-gzip", "timeout", "fs"] } # Database sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "macros", "migrate", "chrono", "uuid"] } # QR qrcode = "0.14" image = "0.25" # Dev tempfile = "3" # ── Root binary crate ────────────────────────────────────────────────── [package] name = "nx9-wg" version.workspace = true edition.workspace = true description = "Native Rust WireGuard management application for the NX9 ecosystem" [[bin]] name = "nx9-wg" path = "src/main.rs" [dependencies] nx9-wg-core.workspace = true nx9-wg-db.workspace = true nx9-wg-api.workspace = true nx9-wireguard.workspace = true nx9-wg-network.workspace = true tokio.workspace = true tracing.workspace = true tracing-subscriber.workspace = true clap.workspace = true axum.workspace = true chrono.workspace = true serde.workspace = true serde_json.workspace = true uuid.workspace = true base64.workspace = true [dev-dependencies] tempfile.workspace = true