40个版本 (9个稳定版本)

1.4.3+v1.4.52024年7月26日
1.4.0+v1.4.02024年4月1日
1.3.0+v1.3.02024年1月25日
1.2.1+v1.2.02023年7月5日
0.0.0 2017年11月7日

Unix APIs中排名第60

Download history 4602/week @ 2024-05-04 4062/week @ 2024-05-11 5617/week @ 2024-05-18 4424/week @ 2024-05-25 4515/week @ 2024-06-01 5308/week @ 2024-06-08 5143/week @ 2024-06-15 5927/week @ 2024-06-22 4566/week @ 2024-06-29 4316/week @ 2024-07-06 5814/week @ 2024-07-13 5669/week @ 2024-07-20 6472/week @ 2024-07-27 4975/week @ 2024-08-03 4547/week @ 2024-08-10 5065/week @ 2024-08-17

每月下载量21,957
35crate中使用(8个直接使用)

BSD-2-Clause

7MB
SLoC 171K

C 128K SLoC // 0.2% comments Shell 26K SLoC // 0.2% comments Rust 8K SLoC // 0.0% comments C++ 3.5K SLoC // 0.1% comments Automake 1.5K SLoC // 0.2% comments Happy 1.5K SLoC M4 770 SLoC // 0.1% comments Bitbake 528 SLoC // 0.1% comments GNU Style Assembly 273 SLoC BASH 45 SLoC // 0.1% comments AWK 34 SLoC // 0.3% comments Python 23 SLoC // 0.3% comments

包含(晦涩的autoconf代码,37KB)elfutils/configure.ac、(ar库,4KB)hithere-dbgsym_1.0-1_amd64.ddeb、(Debian软件包,4KB)hithere_1.0-1_amd64.deb

libbpf-sys 构建状态 crates.io版本号徽章

Rust对Linux内核中的libbpf的绑定

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

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

警告:此crate不提供围绕libbpf的高级或“安全”API包装器。如果您正在寻找使用libbpf的更简单方法,请查看这些实现更高层API的crate...

鼓励社区使用 libbpf-sys 构建更高层的 crates。如果您做到了,请让我知道!

构建

作为 cargo build 过程的一部分,将包含的 libbpf 版本编译并静态链接到生成的二进制文件中。这意味着,为了构建依赖于此 crate 的项目,您的系统必须提供有效的 C 编译器工具链(GCC 和 Clang 都应该可以工作)。此外,您的系统必须提供 zliblibelf 的开发头文件,并且它们必须可以通过 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 作为项目依赖项添加时,您的结果二进制文件将动态链接到 libzlibelf。这意味着运行您二进制文件的系统必须安装这些库。

版本控制

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

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

为了允许人为错误,此 crate 使用 "补丁" 版本号,并且不一定与提供的 libbpf 版本匹配。例如,此 crate 的 0.6.10.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 动态

依赖