No description
Find a file
Jan De Landtsheer 1226f4439e
Some checks failed
Continuous integration / Test macOS-latest (push) Blocked by required conditions
Continuous integration / Test ubuntu-latest (push) Blocked by required conditions
Continuous integration / code_coverage_finalize (push) Blocked by required conditions
Continuous integration / clippy (macOS-latest) (push) Waiting to run
Continuous integration / 1.85 / x86_64-apple-darwin (push) Blocked by required conditions
Continuous integration / 1.85 / x86_64-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / 1.85 / aarch64-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / 1.85 / aarch64-unknown-linux-musl (push) Blocked by required conditions
Continuous integration / 1.85 / arm-unknown-linux-musleabihf (push) Blocked by required conditions
Continuous integration / 1.85 / armv7-unknown-linux-gnueabihf (push) Blocked by required conditions
Continuous integration / stable / x86_64-apple-darwin (push) Blocked by required conditions
Continuous integration / stable / x86_64-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / stable / aarch64-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / stable / aarch64-unknown-linux-musl (push) Blocked by required conditions
Continuous integration / stable / arm-unknown-linux-gnueabihf (push) Blocked by required conditions
Continuous integration / stable / arm-unknown-linux-musleabihf (push) Blocked by required conditions
Continuous integration / stable / armv7-unknown-linux-gnueabihf (push) Blocked by required conditions
Continuous integration / stable / armv7-unknown-linux-musleabihf (push) Blocked by required conditions
Continuous integration / stable / i686-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / 1.85 / arm-unknown-linux-gnueabihf (push) Blocked by required conditions
Continuous integration / 1.85 / armv7-unknown-linux-musleabihf (push) Blocked by required conditions
Continuous integration / 1.85 / i686-unknown-linux-gnu (push) Blocked by required conditions
Continuous integration / rustfmt (push) Failing after 4s
Continuous integration / clippy (ubuntu-latest) (push) Failing after 4s
Upgrade prettytable-rs to 0.10.0 to fix segfault
The old version (0.8.0) had a memory corruption bug that caused
segfaults when print_tty was called without a TTY. Also fixed
warnings in process.rs: removed unused cell import and added
error propagation for print_tty Result.
2026-02-03 17:48:20 +01:00
.github Migrate to Rust Edition 2024 2026-01-07 18:20:36 +01:00
benchmarks Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
docs/adr Migrate to Rust Edition 2024 2026-01-07 18:20:36 +01:00
examples Upgrade prettytable-rs to 0.10.0 to fix segfault 2026-02-03 17:48:20 +01:00
heim Migrate to Rust Edition 2024 2026-01-07 18:20:36 +01:00
heim-common Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-cpu Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-derive Migrate to Rust Edition 2024 2026-01-07 18:20:36 +01:00
heim-disk Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-host Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-memory Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-net Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-process Remove async_trait dependency, use native Rust 2024 async traits 2026-01-07 21:34:43 +01:00
heim-runtime Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-sensors Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
heim-virt Apply cargo fmt formatting 2026-01-07 18:37:02 +01:00
.editorconfig Switching to Github Actions for CI 2019-10-03 14:11:26 +03:00
.gitignore Initial commit 2019-04-11 16:16:36 +03:00
.rustfmt.toml Rewriting Azure pipeline 2019-07-12 17:02:47 +03:00
Cargo.toml Add examples to default-members for workspace-wide example builds 2026-02-03 17:39:03 +01:00
CHANGELOG.md Updating changelog for all changes from the v0.1.0-rc.1 releases 2021-04-08 13:42:48 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2019-05-04 19:07:12 +03:00
COMPARISON.md Add iOS target 2021-02-01 11:53:01 +01:00
CONTRIBUTING.md Changelog for the upcoming 0.1 version 2020-02-27 23:35:35 +03:00
Cross.toml Initial commit 2019-04-11 16:16:36 +03:00
DEVELOPMENT.md Changelog for the upcoming 0.1 version 2020-02-27 23:35:35 +03:00
LICENSE-APACHE Initial commit 2019-04-11 16:16:36 +03:00
LICENSE-MIT Initial commit 2019-04-11 16:16:36 +03:00
README.md Add disk::Partition::usage method (closes #288) 2020-11-07 22:12:54 +01:00

heim

Project banner

Latest Version Latest Version User guide Gitter
Coverage Status Financial Contributors on Open Collective Apache 2.0 OR MIT licensed

Cross-platform library for system information fetching

heim is an ongoing attempt to create the best tool for system information fetching (ex., CPU, memory, disks or processes stats) in the Rust crates ecosystem.
It targets to have at least the same functionality as psutil, gopsutil or oshi eventually.

Check user guide to get more information on the heim goals, integrations and showcases.

Why should I use heim instead of {crate-name}? See the comparison page.

Examples can be found here.

Background

heim has a few key goals which define its development and public interface:

  1. Async-first with tokio and async-std support.
    Bundled polyfill option could be used for other use cases, see documentation for more details.
  2. Cross-platform with platform-specific extensions.
  3. Modular design.
  4. Idiomatic and easy to use.

Technical notes

heim requires Rust 1.45 or higher; this version is explicitly tested in CI and may be bumped in any major or minor release as needed.
Any changes to the supported minimum version will be called out in the release notes.

Platform support

Right now heim support Tier 1 platforms (Linux, macOS, and Windows for i686 and x86_64). You can check the GitHub projects page for more information.

License

Licensed under either of Apache License 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Donations

If you appreciate my work and want to support me or speed up the project development, you can do it here or support this project at Open Collective.

Contributors

Code Contributors

This project exists thanks to all the people who contribute.

Financial Contributors

Become a financial contributor and help us sustain our community.

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website.