ITADN
lucab/zbus_systemd
lucab/zbus_systemd · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

zbus_systemd

crates.io Documentation

一个用于与 systemd DBus 服务交互的纯 Rust 库。

zbus_systemd 提供了通过 DBus 与各类 systemd 服务进行交互的功能。该库试图覆盖所有服务中的所有 systemd 接口。

自动生成的服务

每个服务都有其专属的模块,这些模块是根据当前的 systemd 定义自动生成的,可通过对应的 Cargo 特性来激活:

  • home1:systemd-homed 接口(org.freedesktop.home1)
  • hostname1:systemd-hostnamed 接口(org.freedesktop.hostname1)
  • import1:systemd-importd 接口(org.freedesktop.import1)
  • locale1:systemd-localed 接口(org.freedesktop.locale1)
  • login1:systemd-logind 接口(org.freedesktop.login1)
  • machine1:systemd-machined 接口(org.freedesktop.machine1)
  • network1:systemd-networkd 接口(org.freedesktop.network1)
  • oom1:systemd-oomd 接口(org.freedesktop.oom1)
  • portable1:systemd-portabled 接口(org.freedesktop.portable1)
  • resolve1:systemd-resolved 接口(org.freedesktop.resolve1)
  • systemd1:systemd 接口(org.freedesktop.systemd1)
  • sysupdate1:systemd-sysupdated 接口(org.freedesktop.sysupdated1)
  • timedate1:systemd-timedated 接口(org.freedesktop.timedate1)
  • timesync1:systemd-timesyncd 接口(org.freedesktop.timesync1)

如需了解如何使用这些接口的快速入门指南,请参阅 examples

异步执行器

该 crate 在内部使用 zbus,且不依赖任何默认的 Cargo 功能。 这意味着您必须通过启用以下某个 Cargo 功能来决定使用哪种异步执行器:

  • zbus-async-smol:在内部使用 smol 执行器(需在 zbus 中启用 async-io 功能)。
  • zbus-async-tokio:在内部使用 tokio 执行器(需在 zbus 中启用 tokio 功能)。

如果 zbus 已经存在于您的依赖树中,您可以选择跳过此选项,转而依赖 Cargo 功能统一机制]。

否则,如果您尚未依赖 zbus 且也未启用上述任何异步功能,很可能会出现构建错误。

许可证

您可以根据自己的选择,采用以下任意一种许可证: