#bindings #bpf #collection #compiler #version #generate #bcc

sys bcc-sys

Rust 对 BPF 编译器集合 (BCC) 的绑定

40 个版本 (22 个重大变更)

0.23.0 2021 年 11 月 23 日
0.21.0 2021 年 11 月 23 日
0.19.1 2021 年 6 月 10 日
0.18.0 2021 年 3 月 24 日
0.4.0 2017 年 11 月 9 日

#1570 in 开发工具

Download history 2970/week @ 2024-03-13 2830/week @ 2024-03-20 3379/week @ 2024-03-27 2447/week @ 2024-04-03 1907/week @ 2024-04-10 1750/week @ 2024-04-17 1713/week @ 2024-04-24 1038/week @ 2024-05-01 1701/week @ 2024-05-08 1754/week @ 2024-05-15 1137/week @ 2024-05-22 681/week @ 2024-05-29 713/week @ 2024-06-05 533/week @ 2024-06-12 493/week @ 2024-06-19 458/week @ 2024-06-26

每月下载量 2,341
3 个 Crates 中使用(通过 bcc

Apache-2.0

4MB
131K SLoC

Build Status

Rust 对 bcc 的绑定。

先决条件

  • 在使用此绑定之前必须安装 bcc。

支持的 bcc 版本

bcc 0.4.0 - 0.23.0 通过功能标志支持。

注意:如果您未使用功能标志指定 bcc 的版本,则库将期望此库版本支持的 bcc 最新版本。您必须使用匹配的功能标志指定版本以覆盖此行为。

静态链接

此库允许在 Rust 中编写 BPF 工具时静态链接 bcc 和其他库,而无需在运行时具有 bpf/bcc 库。这需要匹配 llvm 功能标志到您的安装版本,并具备特定的先决条件。有关更多详细信息,请参阅 GitHub 工作流程配置

生成新绑定

有时需要新鲜生成的绑定

  • 以支持 bcc 的新版本
  • 使用更新的 bindgen 版本重新生成旧绑定

如何生成新绑定

在您生成新鲜绑定之前,应在您的系统上安装 rustfmt。使用以下方式安装 rustfmt

$ rustup component add rustfmt
$ rustup update

然后,您可以构建此 crate:cargo build --features generate

新鲜生成的绑定将放置在 src/bccapi/generated.rs

注意:您可能需要修改 build.rs 和/或 wrapper.h 以添加对 bcc 新版本的支持

添加新生成的绑定

为了使用新生成的绑定,我们必须将它们添加到库中。

  • 将生成的绑定移动到位于 src/bccapi 下的版本特定模块中。遵循现有的命名规范。
  • 如果您为新的版本添加了绑定
  • 修改 src/bccapi/mod.rs 以将新模块添加到该库中。
  • 修改 Cargo.toml 以定义新的 bcc 版本的功能。

生成新的绑定需要 rustfmt

依赖项