40个版本 (9个稳定版本)
1.4.3+v1.4.5 | 2024年7月26日 |
---|---|
1.4.0+v1.4.0 | 2024年4月1日 |
1.3.0+v1.3.0 | 2024年1月25日 |
1.2.1+v1.2.0 | 2023年7月5日 |
0.0.0 |
|
在Unix APIs中排名第60
每月下载量21,957
在35个crate中使用(8个直接使用)
7MB
SLoC 171K
包含(晦涩的autoconf代码,37KB)elfutils/configure.ac、(ar库,4KB)hithere-dbgsym_1.0-1_amd64.ddeb、(Debian软件包,4KB)hithere_1.0-1_amd64.deb
libbpf-sys

Rust对Linux内核中的libbpf的绑定
维护者: Alex Forster <[email protected]>
许可证: BSD-2-Clause
libbpf-sys是使用bindgen自动从Linux内核生成Rust FFI绑定到libbpf的打包结果。
警告:此crate不提供围绕libbpf的高级或“安全”API包装器。如果您正在寻找使用libbpf的更简单方法,请查看这些实现更高层API的crate...
- afxdp:AF_XDP的Rust接口 – GitHub | Crates.io
- libbpf-cargo:用于构建bpf程序的Cargo插件 – GitHub | Crates.io
- libbpf-rs:围绕libbpf-sys的安全、惯用和有观点的包装器 – GitHub | Crates.io
- rebpf: 在 Rust 中编写和加载 eBPF 程序 – GitHub | Crates.io
- xsk-rs: Linux AF_XDP 套接字的 Rust 接口 – Github | Crates.io
鼓励社区使用 libbpf-sys 构建更高层的 crates。如果您做到了,请让我知道!
构建
作为 cargo build
过程的一部分,将包含的 libbpf 版本编译并静态链接到生成的二进制文件中。这意味着,为了构建依赖于此 crate 的项目,您的系统必须提供有效的 C 编译器工具链(GCC 和 Clang 都应该可以工作)。此外,您的系统必须提供 zlib 和 libelf 的开发头文件,并且它们必须可以通过 pkgconfig 发现。
在全新的 Debian/Ubuntu 安装上构建
$ apt-get install git rustc cargo build-essential pkgconf zlib1g-dev libelf-dev
$ git clone --recurse-submodules https://github.com/libbpf/libbpf-sys.git && cd libbpf-sys
$ cargo build
在全新的 RHEL/Fedora 安装上构建
$ yum install git rust cargo gcc make pkgconf zlib-devel elfutils-libelf-devel
$ git clone --recurse-submodules https://github.com/libbpf/libbpf-sys.git && cd libbpf-sys
$ cargo build
分发
当您将此 crate 作为项目依赖项添加时,您的结果二进制文件将动态链接到 libz
和 libelf
。这意味着运行您二进制文件的系统必须安装这些库。
版本控制
由于此 crate 的 API 是自动从 libbpf 源代码生成的,它使用基于它提供的 libbpf 版本的版本控制方案。
"主.次" 版本号与每个发布提供的 libbpf 版本完全对应。例如,此 crate 的 0.6.x
版本提供了 libbpf v0.6.x 版本的 API。
为了允许人为错误,此 crate 使用 "补丁" 版本号,并且不一定与提供的 libbpf 版本匹配。例如,此 crate 的 0.6.1
和 0.6.2
版本都包含对 libbpf v0.6.1 的绑定,但后者版本包含对 crate 本身的错误修复和/或增强。
任何给定发布提供的 libbpf 的确切版本可以在版本字符串后面的 "构建元数据" 版本号部分找到,该部分位于 +
之后。例如,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 |
动态 |