[package] name = "galvanize" version = "0.1.0" edition = "2024" authors = ["aitiome "] description = "A modern, Rust-based Wake-on-LAN control plane with HTTP/MQTT APIs, pluggable auth, and an optional React + shadcn Web UI." license = "MIT OR Apache-2.0" repository = "https://github.com/aitiome/galvanize" homepage = "https://github.com/aitiome/galvanize" documentation = "https://github.com/aitiome/galvanize#readme" readme = "README.md" keywords = ["wake-on-lan", "wol", "network", "mqtt", "rest-api"] categories = ["command-line-utilities", "network-programming"] rust-version = "1.85" [features] default = ["webui"] webui = [] [[bin]] name = "galvanize" path = "src/main.rs" [dependencies] # Async runtime tokio = { version = "1.40", features = ["full"] } # Web framework axum = { version = "0.8", features = ["macros", "ws"] } tower = { version = "0.5", features = ["util"] } tower-http = { version = "0.6", features = [ "cors", "fs", "trace", "compression-gzip", ] } # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.9" # Configuration config = "0.15" # CLI clap = { version = "4.5", features = ["derive", "env"] } # Logging tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } # Authentication argon2 = "0.5" jsonwebtoken = { version = "10", features = ["rust_crypto"] } openidconnect = "4" # MQTT rumqttc = "0.25" # Wake-on-LAN wake-on-lan = "0.2" # File watching notify = "8.2" # Utilities snafu = { version = "0.8", features = ["futures"] } anyhow = "1.0" uuid = { version = "1.19", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } async-trait = "0.1" once_cell = "1.20" regex = "1.11" rand = "0.9" base64 = "0.22" # Embedded Web UI assets (when webui feature is enabled) rust-embed = { version = "8.5", features = ["compression"] } mime_guess = "2.0" [dev-dependencies] tokio-test = "0.4" reqwest = { version = "0.12", features = ["json"] } mockall = "0.14" tempfile = "3.12" pretty_assertions = "1.4" [profile.release] lto = true codegen-units = 1 panic = "abort" strip = true [profile.dev] debug = true