#glib #udev #ffi

gudev

Rust 对 gudev 的 API,glib 对 libudev 的支持库

19 个版本 (重大更改)

0.16.0 2024年3月17日
0.15.0 2023年8月3日
0.14.0 2023年2月17日
0.13.0 2022年10月22日
0.1.1 2016年11月30日

#3 in #udev


用于 gnome-egpu

MIT 许可证

47KB
1K SLoC

gudev

gudev 是一个提供对 GUDev 的 Rust 风格绑定的 crate。

它遵循 glib-rs 的发布。

要在您的项目中使用,只需将 gudev = "^0.11.0" 添加到您的 Cargo.toml 中。

请在此处提交问题

https://github.com/hfiguiere/gudev-rs/

最新的自动生成在线文档在

https://docs.rs/gudev/latest/gudev/


lib.rs:

为 gudev 库提供 Rust 绑定。

Libgudev 是一个提供 GObject 绑定的 libudev 库。

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
gudev = "0.12"

下一步

use gudev::prelude::*;
use gudev::Client;
use gudev::Device;

fn main() {
    // Get a list of all block devices
    let devices = Client::new(&[]).query_by_subsystem(Some("block"));

    for device in devices {
        print_device(&device);
    }
}

fn print_device(device: &Device) {
    println!(
        "{} (subsystem={}, sysname={}, devtype={})",
        device.sysfs_path().unwrap_or_else(|| "---".into()),
        device.subsystem().unwrap_or_else(|| "---".into()),
        device.device_file().unwrap_or_else(|| "---".into()),
        device.devtype().unwrap_or_else(|| "---".into()),
    );
}

依赖项

~5.5MB
~119K SLoC