Files
galvanize/Cargo.toml
lonelyhentxi dd11bc70b5
Some checks failed
CI / Rust Check (push) Has been cancelled
CI / Web UI Check (push) Has been cancelled
CI / Security Audit (push) Has been cancelled
feat: basic
2025-07-12 23:59:42 +08:00

97 lines
2.1 KiB
TOML

[package]
name = "galvanize"
version = "0.1.0"
edition = "2024"
authors = ["aitiome <contact@aitiome.org>"]
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