13个版本 (4个重大更新)

0.5.5 2020年10月3日
0.5.4 2020年10月3日
0.4.4 2020年10月2日
0.4.3 2020年9月30日
0.1.0 2020年8月31日

#532操作系统

每月下载量 21次

MIT 许可证

97KB
2K SLoC

rsys

Build Status crates.io crates.io Docs
Crate用于以操作系统无关的方式获取主机和操作系统信息。

通用的API通过Rsys结构体提供,该结构体根据需要的方法条件编译。错误和结果类型可在本Crate的根目录找到,方便使用,同时Rsys结构体暴露的所有方法也都在每个操作系统模块中可用。

主要目标是具有清晰简单的API,尽可能多的API是操作系统无关的。

示例用法

  • Cargo.toml
[dependencies]
rsys = "0.5"
  • main.rs
use rsys::{Rsys, Result};
fn main() -> Result<()> {
    // You can either use api through Rsys object
    // for os-agnostic experience
    let rsys = Rsys::new();
    println!("HOSTNAME - {}", rsys.hostname()?);
    let iface = rsys.default_iface()?;
    println!("CPU - {}", rsys.cpu()?);
    println!("ARCH - {}", rsys.arch()?);
    println!("MEMORY TOTAL - {}b", rsys.memory_total()?);
    println!("UPTIME - {}s", rsys.uptime()?);
    println!("SWAP TOTAL - {}b", rsys.swap_total()?);
    println!("CPU CORES - {}", rsys.cpu_cores()?);
    println!("CPU CLOCK - {}MHz", rsys.cpu_clock()?);
    println!("IPv4 - {}", rsys.ipv4(&iface)?);
    println!("MAC - {}", rsys.mac(&iface)?);
    println!("INTERFACES - {:#?}", rsys.interfaces()?);

    
    // Or use functions in each module
    if cfg!(target_os = "linux") {
        println!("KERNEL VERSION - {}", rsys::linux::kernel_version()?);
        println!("HOSTNAME - {}", rsys::linux::hostname()?);

        // Os-specific functions are also available as methods
        println!("MEMORY - {:#?}", rsys.memory()?);
        println!("KERNEL_VERSION - {:#?}", rsys.kernel_version()?);
    }
    Ok(())
}

待办事项

  • 完成macos通用API
  • 完成windows通用API
  • 添加异步功能以支持异步文件读取和命令等...

许可证

MIT

依赖项

~0.3–1MB
~21K SLoC