6个版本 (2个稳定版)

1.0.1+v1.0.02022年8月25日
0.8.0+v0.8.02022年5月21日
0.7.2+v0.7.02022年5月21日
0.7.1+v0.7.02022年4月21日
0.7.0+v0.7.02022年4月21日

#976Unix APIs

每月24次下载
用于 bpf-rs

BSD-2-Clause

1MB
30K SLoC

C 23K SLoC // 0.1% comments Rust 6.5K SLoC // 0.0% comments Shell 1K SLoC // 0.1% comments BASH 90 SLoC // 0.1% comments Python 22 SLoC // 0.3% comments

包含 (ZIP文件, 2KB) bpf-object-fuzzer_seed_corpus.zip

bpfdeploy-libbpf-sys

警告:这是libbpf-sys的一个分支。理想情况下,我们打算将这里的多数更改上传到主分支,但在那之前,这个分支将维护用于bpfdeploy.io crate


Rust对Linux内核中libbpf的绑定

维护者:Alex Forster <[email protected]>
许可: BSD-2-Clause

libbpf-sys是使用bindgen自动从Linux内核生成Rust FFI绑定到libbpf的结果。

警告:这个crate不提供对libbpf的“高级”或“安全”API包装器。如果您正在寻找更简单的方式来使用libbpf,请查看这些其他crate,它们使用libbpf-sys实现了更高层次的API...

鼓励社区使用 libbpf-sys 构建更高层次的crate。如果您做到了,请告诉我!

构建

cargo build 过程中,会编译一个包含的 libbpf 复制并将其静态链接到生成的二进制文件中。这意味着,为了构建依赖于这个crate的项目,您的系统必须提供工作的C编译器工具链(GCC和Clang都应工作)。此外,您的系统必须提供 zliblibelf 的开发头文件,并且它们必须可以通过 pkgconfig 被发现。

分发

当您将此crate作为依赖项添加到您的项目中时,您的生成的二进制文件将动态链接到 libzlibelf。这意味着运行您的二进制文件的系统必须安装这些库。

版本

由于此crate的API是自动从 libbpf 源文件生成的,因此它使用基于它提供的 libbpf 版本的版本控制方案。

“主.次”的semver数字与每个发布提供的 libbpf 版本完全对应。例如,此crate的 0.6.x 发布提供了 libbpf v0.6.x 发布的API。

为了允许人为错误,此crate使用“修补”semver数字,并且不一定与提供的 libbpf 版本匹配。例如,此crate的 0.6.10.6.2 发布都包含对 libbpf v0.6.1 的绑定,但后者发布包含对crate本身的错误修复和/或增强。

任何给定发布提供的 libbpf 的确切版本可以在版本字符串中找到的“构建元数据”semver部分中,该部分位于代码 + 之后。例如,0.6.2+v0.6.1 指示crate版本为 0.6.2,上游 libbpf 版本为 v0.6.1

许可和依赖项

此crate在BSD 2-Clause许可下发布,并小心避免将病毒许可证传播给用户。

它目前依赖于以下第三方库

网站 许可证 链接
libbpf github.com/libbpf/libbpf LGPL-2.1-仅限 BSD-2-条款 静态
libelf sourceware.org/elfutils LGPL-2.1--以后 LGPL-3.0--以后 动态
zlib zlib.net Zlib 动态

依赖项