1个不稳定版本
0.0.1 | 2024年7月15日 |
---|
#21 in #sysfs
每月195次下载
用于 sysfs
5KB
50 行
sysfs-rs
[!重要]请注意,这个crate非常不完整,并且不会在相当长的时间内被视为稳定。公共API可能会发生巨大变化。随着更多
sysfs
属性被封装和记录,可能需要改变组织结构,以提供更统一和一致的开发者体验。
这是什么?
这个crate体现了三个核心目标
-
为Linux的
sysfs
属性提供安全函数和类型(最终)在一个良好的组织结构中。 -
记录每个
sysfs
属性,以及从这些属性读取和写入的数据类型。有关sysfs
的信息散布在各个地方,从源代码中的注释到邮件列表中的讨论线程。这个crate旨在汇总这些知识,并使其易于消化。 -
提供属性宏助手和转换函数,以生成任何给定
sysfs
属性的访问器。由于sysfs
很大,而且单个属性难以发现和正确处理,这个crate的内部宏被导出给其他开发者,以便他们可以定义这个crate中缺少的属性和模块。- 请贡献属性定义!
请参阅维基百科页面和内核文档,了解更多关于Linux的sysfs
的信息。
如何使用它?
首先,已经定义了一些针对 sysfs
目录的模块,它们的属性已经被封装。浏览该库的 sysfs::api
模块以查看是否满足您的需求。例如,有获取函数,例如 sysfs::api::psu::power_supply::capacity
,它读取电池的电量为 f32
百分比值(0.00 .. 1.00
)。然后还有设置函数,将类型化数据序列化并写入到 sysfs
属性文件,例如 sysfs::api::psu::power_supply::set_charge_behavior
。
其次,如果在这个库的 sysfs::api
模块中没有已经定义的封装器,您完全可以自由地实现自己的!查看 sysfs::lib
中的项目文档以及现有模块的源代码(例如 sysfs::api::cpu
)以了解如何开始。此外,对 api
模块的贡献非常受欢迎和感激!
依赖项
~270–730KB
~17K SLoC