swactor/crates/dashboard/Cargo.toml
Zachery Aaron Shores-Chmielewski 89e9b5b587 feat(distribution): add vastai telemetry layer and synth
New diagnostics::vastai (record/sampler/shipper/logs) + vastai-synth crate for
reproducible synthetic fleet telemetry. Dashboard live_collector unifies collector +
fleet SSE UI; pp example adds vastai_mon, profiles, docker base image, scripts.


Signed-off-by: Zachery Aaron Shores-Chmielewski <zacheryasc@gmail.com>
2026-05-29 12:55:10 +04:00

49 lines
1.7 KiB
TOML

[package]
name = "dashboard"
version = "0.1.0"
edition = "2024"
[dependencies]
swactor = { path = "../..", features = ["serde", "tracing"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["registry"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
axum = "0.8"
tokio = { version = "1", features = ["net", "rt-multi-thread", "sync", "time"] }
tokio-stream = "0.1"
crossbeam-queue = "0.3.12"
ratatui = { version = "0.29", optional = true, default-features = false, features = ["crossterm"] }
crossterm = { version = "0.28", optional = true }
clap = { version = "4", features = ["derive"], optional = true }
ctrlc = "3"
anyhow = { version = "1", optional = true }
distribution = { path = "../distribution", optional = true }
[features]
default = []
tui = ["dep:ratatui", "dep:crossterm"]
# Offline replay viewer example: loads a finalized diagnostics bundle
# (tarball or spool dir) and serves a localhost web UI for scrubbing
# through the event timeline.
replay-viewer = ["dep:anyhow", "dep:distribution", "distribution/collector"]
# Live collector + fleet dashboard: the dashboard process *is* the HTTP
# diagnostics collector (receives broadcast POSTs) and serves a unified live
# SSE UI folding the vast.ai fleet telemetry and the orchestrator's
# distribution snapshot server-side.
live-collector = ["dep:distribution", "distribution/collector"]
[[bin]]
name = "swactor-tui"
path = "src/bin/tui.rs"
required-features = ["tui"]
[[bin]]
name = "dashboard_collector"
path = "src/bin/dashboard_collector.rs"
required-features = ["live-collector"]
[[example]]
name = "replay_viewer"
path = "examples/replay_viewer.rs"
required-features = ["replay-viewer"]