#operating-systems #pci #bindings

libpci-rs

一个跨平台的库,用于检测和列出 PCI 设备及其信息

1 个不稳定版本

0.0.1 2023 年 9 月 15 日

#16 in #pci

BSD-3-Clause

2KB

libpci-rs 0.2.10-testing

⚠ 施工中 ⚠

Crates.io GitHub GitHub Workflow Status (with event)

不稳定的工作中库,用于检测和列出 PCI 设备及其信息。

该库不绑定到 libpci,也不需要 libpci。尽可能多的库代码用 Rust 编写。遗憾的是,并非所有操作系统都有稳定或维护良好的 Rust API,所以那些代码将分离到一个 C++17 后端。

本项目使用 语义版本控制

构建

构建 libpci-rs 很简单。下面是一个构建示例。

  • git clone --recurse-submodules https://github.com/gibsonpil/libpci-rs.git
  • cargobuild

构建依赖

除了 Cargo 拉取的依赖之外,libpci-rs 还需要在您的系统上安装一些软件包,其中一些是必需的,而另一些则只在尝试执行某些操作时才需要。对于那些不是总是需要的软件包,将添加说明。

  • rustc
  • cargo
  • clang(适用于具有 C++ 后端的平台)
  • python3(用于 helper.py 辅助脚本,大多数情况下只需要开发者)
  • clang-format(用于格式化 C++ 代码,应用样式要求)
  • cppcheck(用于 C++ 代码的代码审查)

文档

文档包含在代码本身中,以 Rustdoc 注释的形式。它包括以下有用的信息

  • 公共 API 的总覆盖率
  • 一些常见用例的代码示例
  • 每个平台的字段可用性的详细信息

要查看文档,请克隆存储库并进入目录,然后运行 cargo doc --open

平台支持

平台 OS API 后端语言
Windows setupapi Rust 后端
Linux/Android sysfs Rust 后端
macOS/Darwin IOKit C++ 后端
FreeBSD /dev/pci C++ 后端
DragonflyBSD /dev/pci C++ 后端
OpenBSD /dev/pci C++ 后端
NetBSD /dev/pci C++ 后端
Haiku /dev/misc/poke C++ 后端

无运行时依赖