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与原始
libudev
API非常相似- 为通过FFI实现未来的C API奠定基础
正在进行中
目前,只有Rust公共API。正在通过顶级API继续公开剩余的子系统
- 通过FFI公开公共C API
- 在Rust API稳定后,可以开始实现C API
- 一些抽象通过FFI屏障安全地暴露需要做些工作,例如:
Arc<Udev>