glances-rs · v0.10.42
glances-rs is a from-scratch Rust reimplementation of
Glances, the
cross-platform system monitor. CPU, memory, network, disk, processes
and a REST API — all built on std,
core, and alloc alone. Zero
crates.io dependencies. One static binary.
Most Rust binaries pull in dozens of crates. glances-rs
pulls in none. Every line of platform integration is a direct
extern "C" call to libc,
or a hand-rolled parser of /proc and /sys.
The result:
codegen-units = 1. Drop the
executable on a server and run it.
src/platform/linux/ —
enforced by lint, not by convention.
In release v0.10.42, the monitor is read-only, but it still
listens on ports and parses input. Every byte is untrusted until proven otherwise:
[dependencies] at all — enforced by a
build-time lint. There is nothing upstream to compromise.
unsafe only under src/platform/linux/,
one portable syscall per block, allowlisted by lint.
no_shell lint: Command with explicit
argv only, never sh -c.
PathBuf::join only; no format!-built
paths.
0.0.0.0:61208 with auth; no built-in
TLS. Password flags never accept argv values (preventing ps leaks);
credentials come from stdin prompts or a 0600 password file.
The current release is v0.10.42 — the same version
pinned in Cargo.toml and surfaced by
glances-rs --version. The full changelog lives on
GitHub Releases
and in CHANGELOG.md.
v0.10.42 ships with 633 lib unit and integration
tests, and four hard invariants (no_deps,
line_cap_256, unsafe_allowlist,
no_shell) that run on every push.
One-line install on Linux (verifies SHA-256, drops the binary into ${XDG_BIN_HOME:-$HOME/.local/bin}):
curl -fsSL https://raw.githubusercontent.com/UberMetroid/glances-rs/rust/install.sh -o install.sh
sh install.sh
Prefer to audit first? The script self-verifies against the published
install.sh.sha256
before doing anything. Linux x86_64/aarch64 only; other hosts build from source with
cargo build --release.
Build from source:
cargo build --release
Show the full CLI surface (same flag set as upstream Python Glances):
./target/release/glances-rs --help
Launch the HTTP server on the default port 61208:
./target/release/glances-rs --webserver
The web mode serves the REST API and the Vue browser UI on
http://localhost:61208. Auth is read from the configured
password file; the server speaks HTTP/1.1 with chunked SSE for live
stats push.
LGPL-3.0-only. The license matches upstream
Glances so the
Rust port can be linked into GPL-compatible systems without
relicensing friction. See LICENSE in the repo root.