Skip to content
Cross-platform async library for system information fetching πŸ¦€
Rust
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.ci Switching from codecov to coveralls Aug 1, 2019
.github OpenCollective link in the GitHub Sponsor details [ci skip] Aug 6, 2019
heim-common process::Process::cpu_times for Linux (closes #107) Aug 13, 2019
heim-cpu process::Process::cpu_times for Linux (closes #107) Aug 13, 2019
heim-derive Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-disk Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-host Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-memory Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-net Process disk IO counters for Linux (closes #127) Aug 15, 2019
heim-process process::Process::get and ::current for Windows (closes #119) Aug 15, 2019
heim-runtime Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-sensors sensors::temperatures for Linux (closes #85) Aug 10, 2019
heim-virt Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
heim-winservice Fix grammar (#76) Jul 24, 2019
heim sensors::temperatures for Linux (closes #85) Aug 10, 2019
.editorconfig Rewriting Azure pipeline Jul 12, 2019
.gitignore Initial commit Apr 11, 2019
.rustfmt.toml Rewriting Azure pipeline Jul 12, 2019
CHANGELOG.md Update to futures-preview = "0.3.0-alpha.18" version. Aug 10, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md May 4, 2019
COMPARISON.md Add licensing information into comparison table Aug 3, 2019
CONTRIBUTING.md Fix grammar (#76) Jul 24, 2019
Cargo.toml heim-sensors placeholder crate Aug 3, 2019
Cross.toml Initial commit Apr 11, 2019
DEVELOPMENT.md Runtimes shim crate with a sync polyfill Jul 26, 2019
LICENSE-APACHE Initial commit Apr 11, 2019
LICENSE-MIT Initial commit Apr 11, 2019
README.md Release v0.0.6 Aug 8, 2019
azure-pipelines.yml Partial code coverage support for macOS Jul 27, 2019

README.md

heim

Project banner

Latest Version Latest Version dependency status Build Status Coverage Status Minimum rustc version Apache 2.0 OR MIT licensed Gitter Platforms supported Backers on Open Collective Sponsors on Open Collective

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.

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

Background

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

  1. Async-first.
    Async support in Rust has become a first class citizen and it's about time to use it. While many things here do not require async right now, it will help create better and faster implementations later.

  2. Cross-platform.
    Any code from heim should just work on any supported platforms. OS-specific things do exist, but the API design forces users to pay attention to them.

  3. Modular design.
    Thanks to the various futures combinators, it's up to you to choose the exact information you want to get.

  4. Idiomatic and easy to use.

Technical notes

heim requires stable Rust 1.36+, but examples, tests and benchmarks use the async_await feature and therefore require a nightly compiler.
Of course, you can use heim without the async keyword, just be aware that it is used by the examples.

heim is using std::future::Future and it is expected that users understand how futures work, how to use them, and what differences there are between futures versions 0.1 and 0.3/std::future::Future.
It is not a project goal to provide any kind of information about how to combine heim with actix, hyper, tide, or any other Rust crate.

At the moment, heim is async runtime agnostic, but in the future it may need to depend on runtime specific features. Note that if this becomes the case, it is likely that the required runtime(s) will be compatible with the runtime crate. Users may want to consider this fact during development. See #75 for more info.

Platform support

At the moment, heim is in MVP phase, which means that there is only only partial support for Tier 1 platforms (Linux, macOS, and Windows for i686 and x86_64). You can check the GitHub projects page for more information.

Please be aware that at the moment, heim (and all sub-crates) has the "experimental" status, so consider double checking the results before pushing your code to production.

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

This project exists thanks to all the people who contribute. Contributors

Backers

Thank you to all our backers! πŸ™ [Become a backer]

Backers

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

You can’t perform that action at this time.