// the find
heim-rs/heim
Cross-platform async library for system information fetching 🦀
heim is a Rust library for querying system metrics — CPU, memory, disk, network, processes — across Linux, macOS, and Windows, using async streams as the primary interface. It's the Rust answer to psutil, aimed at anyone building monitoring agents, CLI tools, or system daemons in async Rust. Last meaningfully active around 2021–2022 despite a 2024 commit.
The modular crate structure (heim-cpu, heim-disk, heim-memory, etc.) means you only pull in what you need rather than one monolithic dependency. Platform-specific extensions are exposed through an os module pattern — you can access Linux-only /proc fields without the cross-platform API hiding them. Both tokio and async-std are supported, which was genuinely difficult to pull off and matters if you're locked into one runtime. The FFI bindings are hand-rolled per platform rather than leaning on a lowest-common-denominator abstraction, so you actually get accurate numbers instead of approximate ones.
The project is effectively abandoned — the changelog stopped updating around 0.0.12 in 2021, and the crate never reached a stable 1.0 API. Adopting it means inheriting an unmaintained async API that may break as tokio evolves. The async-first design is a real tradeoff: for most system metric use cases, the overhead of async streams adds complexity with no throughput benefit since you're mostly reading from /proc or making syscalls anyway. sysinfo is the pragmatic alternative — stable, maintained, synchronous, and covering most of the same ground without the ceremony.