Giter Site home page Giter Site logo

heim-rs / heim Goto Github PK

View Code? Open in Web Editor NEW
884.0 11.0 95.0 1.04 MB

Cross-platform async library for system information fetching ๐Ÿฆ€

Home Page: https://heim-rs.github.io/

License: Apache License 2.0

Rust 100.00%
rust system monitoring async cpu memory disk network linux macos

heim's Introduction

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.

heim's People

Contributors

alexmaco avatar bvaisvil avatar byron avatar chhetripradeep avatar cjbassi avatar cosmichorrordev avatar daladim avatar davidkna avatar dependabot-preview[bot] avatar eeyun avatar fenex avatar guillaumegomez avatar koushiro avatar marcelbuesing avatar musikid avatar roblabla avatar svartalf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heim's Issues

Memory

Tracking issue for heim::host::uptime support for Windows.

Code is exists already, but should be confirmed working.
It would be good also to cover it with integration test.

Cpu stats

Tracking issue for heim::cpu::stats support for MacOS

Disk IO counters

Tracking issue for heim::disk::io_counters and heim::disk::io_counters_physical support for MacOS.

Detect Xen-specific information

Things to do:

  1. Check out the /proc/xen
  2. hypervisor features at /sys/hypervisor/properties/features
  3. /sys/hypervisor/type file

Cpu time

Tracking issue for heim::cpu::time support for Windows

Disk partitions

Tracking issue for heim::disk::partitions and heim::disk::partitions_physical support for Windows

Memory

Tracking issue for heim::memory::memory support for MacOS

Host users

Tracking issue for heim::host::users support for MacOS.

Cpu frequency

Tracking issue for heim::cpu::frequency support for Windows

Cpu frequency

Tracking issue for heim::cpu::frequency support for MacOS

Cpu times

Tracking issue for heim::cpu::times support for MacOS

Cpu times

Tracking issue for heim::cpu::times support for Windows

Host uptime

Tracking issue for heim::host::uptime support for Windows

Network NIC

Tracking issue for heim::net::nic support for Windows.

Cpu time

Tracking issue for heim::cpu::time support for MacOS

Disk usage

Tracking issue for heim::disk::usage for Windows

Swap

Tracking issue for heim::memory::swap support for MacOS

Network connections

There is an implementation exists in the source code, but it is commented out, because it depends on this PR.

Netlink sock_diag is definitely better than parsing /proc/net files, therefore this feature will be freezed until mentioned pull request merged (or other async netlink library appears).

Network NIC

Tracking issue for heim::net::nic support for MacOS

Disk partitions

Tracking issue for heim::disk::partitions and heim::disk::partitions_physical support for MacOS

Host platform

Tracking issue for heim::host::platform support for MacOS.

Code for it exists already at disk/src/sys/unix, but it should be confirmed working.

Host platform

Tracking issue for heim::host::platform support for Windows

Host users

Tracking issue for heim::host::users for Windows

Swap

Tracking issue for heim::memory::swap support for Windows.

Same to #21, code is exists already, but should be confirmed and covered with integration tests.

Windows host::users fails

For some reasons smoke test for host::users is failing at Azure Pipelines with a following error:

Error {
  kind: Io(
    Os {
      code: 7022,
      kind: Other,
      message: "The specified session cannot be found."
    }
  )
}

Since the code by itself seems to be working properly, it might be the Azure environment problem? Should be investigated.
At the moment this test is skipped for Windows build.

Cpu stats

Tracking issue for heim::cpu::stats support for Windows

Host uptime

Tracking issue for heim::host::uptime support for MacOS

Disk usage

Tracking issue for heim::disk::usage for MacOS

Disk IO counters

Tracking issue for heim::disk::io_counters and heim::disk::io_counters_physical support for Windows.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.