cjbassi / heim

Cross-platform async library for system information fetching 🦀

Home Page:https://docs.rs/heim

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

heim

Latest Version Latest Version dependency status Build Status Minimum rustc version Apache 2.0 OR MIT licensed Gitter

Cross-platform framework 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.

Background

heim has few key things, which are defining its development and public interface:

  1. Async-first.
    Async support in Rust becomes a first level citizen and it is about time to use it. While many things here are not requiring to be async right now, it will help to create better and faster implementations later.

  2. Cross-platform.
    Any code from heim should just work at any platform supported. OS-specific things are exists, but forces user to pay attention to them due to API design.

  3. Smallest pieces possible.
    Thanks to a 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 API targets to compile with stable Rust 1.36+; but examples, tests and benchmarks are using async_await feature, and therefore, requiring nightly compiler.
Of course, you can use heim without the async keyword, just be careful with the examples.

heim is using futures = "0.3" and it is expected from users to understand how futures are working, how to use them and what differences there are between 0.1 and 0.3 versions.
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 not dependant on any async runtime, but it will in a future and most probably it will be a runtime crate. Users may want to consider that fact during the development.

Platform support

At the moment it is in MVP phase, which means that Tier 1 platforms only (Linux, macOS and Windows for i686 and x86_64) are partially supported. You may want to 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 to double check the results before pushing your code to a production.

Donations

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

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.

About

Cross-platform async library for system information fetching 🦀

https://docs.rs/heim

License:Apache License 2.0


Languages

Language:Rust 100.0%