#udev #linux #unix #linux-api #public-api #devfs

udevrs

纯Rust实现的用户空间udev库

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

Download history 16/week @ 2024-05-16 99/week @ 2024-05-23 159/week @ 2024-06-20 74/week @ 2024-06-27 75/week @ 2024-07-04 88/week @ 2024-07-11 22/week @ 2024-07-18 39/week @ 2024-07-25 27/week @ 2024-08-01 38/week @ 2024-08-08

每月 129 次下载
用于 cyme

LGPL-2.0-or-later

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添加用例示例。

正在进行中

目前,只有Rust公共API。正在通过顶级API继续公开剩余的子系统

  • 通过FFI公开公共C API
    • 在Rust API稳定后,可以开始实现C API
    • 一些抽象通过FFI屏障安全地暴露需要做些工作,例如:Arc<Udev>

依赖项