66 releases

0.8.2 Mar 3, 2019
0.8.0 Dec 24, 2018
0.6.2 Oct 4, 2018
0.5.6 May 22, 2018
0.0.2 Jul 25, 2015

#22 in Filesystem

Download history 241/week @ 2018-11-18 496/week @ 2018-11-25 489/week @ 2018-12-02 467/week @ 2018-12-09 455/week @ 2018-12-16 908/week @ 2018-12-23 255/week @ 2018-12-30 495/week @ 2019-01-06 277/week @ 2019-01-13 245/week @ 2019-01-20 310/week @ 2019-01-27 301/week @ 2019-02-03 357/week @ 2019-02-10 452/week @ 2019-02-17 686/week @ 2019-02-24

1,864 downloads per month
Used in 6 crates

MIT license

201KB
5K SLoC

sysinfo Build status

A system handler to interact with processes.

Support the following platforms:

  • Linux
  • Raspberry
  • Mac OSX
  • Windows

Running on Raspberry

It'll be difficult to build on Raspberry. A good way-around is to be build on Linux before sending it to your Raspberry:

rustup target add armv7-unknown-linux-gnueabihf
cargo build --target=armv7-unknown-linux-gnueabihf

Code example

You have an example into the examples folder. Just run cargo run inside the examples folder to start it. Otherwise, here is a little code sample:

extern crate sysinfo;

use sysinfo::{NetworkExt, System, SystemExt};

let mut sys = System::new();

// We display the disks:
println!("=> disk list:");
for disk in sys.get_disks() {
    println!("{:?}", disk);
}

// Network data:
println!("input data : {} B", sys.get_network().get_income());
println!("output data: {} B", sys.get_network().get_outcome());

// Components temperature:
for component in sys.get_components_list() {
    println!("{:?}", component);
}

// Memory information:
println!("total memory: {} kB", sys.get_total_memory());
println!("used memory : {} kB", sys.get_used_memory());
println!("total swap  : {} kB", sys.get_total_swap());
println!("used swap   : {} kB", sys.get_used_swap());

// Number of processors
println!("NB processors: {}", sys.get_processor_list().len());

// To refresh all system information:
sys.refresh_all();

C interface

It's possible to use this crate directly from C. Take a look at the Makefile and at the examples/src/simple.c file.

To build the C example, just run:

> make
> ./simple
# If needed:
> LD_LIBRARY_PATH=target/release/ ./simple

Dependencies

~2MB
~28K SLoC

  • windows winapi 0.3+fileapi+handleapi+ioapiset+minwindef+pdh+psapi+synchapi+sysinfoapi+tlhelp32+winbase+winerror+winioctl+winnt
  • cfg-if 0.1
  • libc 0.2
  • rayon 1.0
  • build build.rs