libmacchina

Crates.iolibmacchina
lib.rslibmacchina
version8.0.0
sourcesrc
created_at2021-03-22 22:22:06.978909
updated_at2024-10-29 19:06:19.134873
descriptionA library that can fetch all sorts of system information.
homepage
repositoryhttps://github.com/Macchina-CLI/libmacchina
max_upload_size
id372312
size193,454
Aziz (grtcdr)

documentation

README

libmacchina

A library providing access to all sorts of system information.

Linux • macOS • Windows • NetBSD • FreeBSD • Android • OpenWrt

version docs

Disclaimer

libmacchina utilizes unsafe code in the form of calls to system libraries that haven't been natively implemented in Rust, we do this for performance reasons.

Usage

Add the following to your project's Cargo.toml file:

libmacchina = "7"

Notes

On distributions like openSUSE that use the ndb RPM database format, librpm (which is usually provided by the rpm-devel package) is required for the RPM package count readout to work.

Examples

// Let's import two of the several available types.
use libmacchina::{GeneralReadout, MemoryReadout};

fn main() {
    // Let's import the GeneralReadout trait so we
    // can fetch some general information about the host.
    use libmacchina::traits::GeneralReadout as _;

    let general_readout = GeneralReadout::new();

    // There are many more metrics we can query
    // i.e. username, distribution, terminal, shell, etc.
    let cpu_cores = general_readout.cpu_cores().unwrap(); // 8 [logical cores]
    let cpu = general_readout.cpu_model_name().unwrap();  // Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
    let uptime = general_readout.uptime().unwrap();       // 1500 [in seconds]

    // Now we'll import the MemoryReadout trait to get an
    // idea of what the host's memory usage looks like.
    use libmacchina::traits::MemoryReadout as _;

    let memory_readout = MemoryReadout::new();

    let total_mem = memory_readout.total(); // 20242204 [in kB]
    let used_mem = memory_readout.used();   // 3894880 [in kB]
}

Commit count: 436

cargo fmt