4个版本 (2个重大变更)
| 0.3.0 | 2024年6月24日 |
|---|---|
| 0.2.0 | 2024年5月22日 |
| 0.1.1 | 2023年12月6日 |
| 0.1.0 | 2023年12月6日 |
#330 in Unix APIs
每月 129 次下载
用于 cyme
2.5MB
5.5K SLoC
udev
Rust对eudev项目的移植,用于与Linux的devfs文件系统交互。
该项目试图尽可能保持与原始C项目的公共API接近。
该库是一个与初始化系统无关的实现,就像eudev一样。
安全性
尽可能使用安全的Rust编写代码。一些与Linux API交互的点需要unsafe代码。
所有unsafe代码都封装在安全的接口中,并带有SAFETY注释进行说明。
没有C依赖。
Rust API
所有Rust结构体都有一个公共API,与eudev库中的对应部分相当接近。
请参阅库文档了解用法。
本地生成文档
$ cd udev
$ cargo doc --all --open
随着项目的成熟,将向doc-tests添加用例示例。
- Udev上下文
- UdevList设备条目列表
- UdevDevice内核设备
- UdevMonitor设备监控服务
- UdevEnumerate设备枚举
- UdevQueue设备队列
- UdevHwdb设备硬件数据库持久存储
- 顶级API与原始
libudevAPI非常相似- 为通过FFI实现未来的C API奠定基础
正在进行中
目前,只有Rust公共API。正在通过顶级API继续公开剩余的子系统
- 通过FFI公开公共C API
- 在Rust API稳定后,可以开始实现C API
- 一些抽象通过FFI屏障安全地暴露需要做些工作,例如:
Arc<Udev>