#cpu-memory #information #disk #cpu #system-information #memory #version-info

sys sys-info-extended

This crate is a fork of https://crates.io/crates/sys-info crate and extended version of it

11 releases (7 breaking)

Uses old Rust 2015

0.8.1 Oct 18, 2024
0.7.0 Sep 27, 2024
0.4.0 Apr 1, 2024
0.3.0 Feb 6, 2024

#420 in Operating systems

Download history 2/week @ 2024-07-27 4/week @ 2024-08-03 1/week @ 2024-08-10 192/week @ 2024-08-31 389/week @ 2024-09-07 50/week @ 2024-09-14 80/week @ 2024-09-21 120/week @ 2024-09-28 13/week @ 2024-10-05 158/week @ 2024-10-12 109/week @ 2024-10-19 17/week @ 2024-10-26 4/week @ 2024-11-02

289 downloads per month
Used in incli

MIT license

125KB
3K SLoC

Rust 2K SLoC // 0.0% comments C 1K SLoC // 0.1% comments

sys-info-extended

This crate is a fork of sys-info crate, and i'll continue to develop. Contributions are welcome especially for mac os.

Get system information in Rust.

For now it supports Linux, Mac OS X, illumos, Solaris, FreeBSD, OpenBSD, NetBSD and Windows. And now it can get information of kernel/cpu/memory/disk/load/hostname/graphics and so on.

I especially focused on very practical informations about system(computer type, user name, public ipv4 address etc.) and especially Windows api's. Because of that, in my opinion it's the best crate for getting system info especially for windows. I aim the include outputs of all windows classes in future releases. So if you're a game developer or windows programmer, this will be one of the go-to crates for you.

If you like this liblary, give a star on it's github repo

Usage

Add this to Cargo.toml:

[dependencies]
sys-info-extended = "0.8.0"

and add this to crate root:


use sys_info_extended::{os_type, os_release, get_graphics_info, get_system_env_var, get_public_ipv4_address, append_env, set_env};

use some functions:


let our_os_type = os_type().unwrap();
let os_release = os_release().unwrap();
let graphics = get_graphics_info();
let path_env = get_system_env_var("PATH").unwrap();
let ip_address = get_public_ipv4_address();

let env_option = EnvOptions {
    name: "A Env name that not exist",
    value: "A value",
    level: EnvLevel::User
}

set_env(env_option);

Already Planned Features For Next Releases

  • adding get_download_speed() function which measures your network's download speed.
  • Camera Infos
  • USB Infos
  • Mouse Infos
  • All other windows system classes

Dependencies

~60–385KB