finds.dev← search

// the find

heim-rs/heim

★ 928 · Rust · Apache-2.0 · updated Jul 2024

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.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →