[package] name = "socktop_agent" version = "1.50.2" authors = ["Jason Witty "] description = "Socktop agent daemon. Serves host metrics over WebSocket." edition = "2024" license = "MIT" readme = "README.md" homepage = "https://github.com/jasonwitty/socktop" repository = "https://github.com/jasonwitty/socktop" [dependencies] # Tokio: Use minimal features instead of "full" to reduce binary size # Only include: rt-multi-thread (async runtime), net (WebSocket), sync (Mutex/RwLock), macros (#[tokio::test]) # Excluded: io, fs, process, signal, time (not needed for this workload) # Savings: ~200-300KB binary size, faster compile times tokio = { version = "1", features = ["rt-multi-thread", "net", "sync", "macros"] } axum = { version = "0.7", features = ["ws", "macros"] } sysinfo = { version = "0.37", features = ["network", "disk", "component"] } serde = { version = "1", features = ["derive"] } serde_json = "1" flate2 = { version = "1", default-features = false, features = ["rust_backend"] } futures-util = "0.3.31" tracing = { version = "0.1", optional = true } tracing-subscriber = { version = "0.3", features = ["env-filter"], optional = true } gfxinfo = { version = "0.1.2", optional = true } once_cell = "1.19" axum-server = { version = "0.7", features = ["tls-rustls"] } rustls = { version = "0.23", features = ["aws-lc-rs"] } rustls-pemfile = "2.1" rcgen = "0.13" anyhow = "1" hostname = "0.3" prost = { workspace = true } time = { version = "0.3", default-features = false, features = ["formatting", "macros", "parsing" ] } [features] default = ["gpu"] gpu = ["gfxinfo"] logging = ["tracing", "tracing-subscriber"] [build-dependencies] prost-build = "0.13" tonic-build = { version = "0.12", default-features = false, optional = true } protoc-bin-vendored = "3" [dev-dependencies] assert_cmd = "2.0" tempfile = "3.10" tokio-tungstenite = "0.21" [package.metadata.deb] maintainer = "Jason Witty " copyright = "2024, Jason Witty " license-file = ["../LICENSE", "4"] extended-description = """\ socktop_agent is the daemon component that runs on remote hosts to collect \ and serve system metrics over WebSocket. It gathers CPU, memory, disk, network, \ GPU, and process information that can be monitored remotely by the socktop TUI client.""" depends = "$auto" section = "admin" priority = "optional" assets = [ ["target/release/socktop_agent", "usr/bin/", "755"], ["../README.md", "usr/share/doc/socktop_agent/", "644"], ] maintainer-scripts = "debian/" systemd-units = { unit-name = "socktop-agent", unit-scripts = ".", enable = false }