Rust binding for bcc.
- bcc must be installed before using this binding.
Supported bcc versions
bcc 0.4.0 - 0.16.0 are supported via feature flags.
Note: If you do not specify a version of bcc using feature flags, the library will expect the latest version of bcc supported by the release of this library. You must specify a version using the matching feature flag to override this behavior.
This library allows static linking of bcc and other libraries required to write BPF utilities in Rust without needing to have bpf/bcc libraries available at runtime. This requires matching the llvm feature flag to your installed version and having specific prerequisites available. See the GitHub Workflow config for more details.
Generating new bindings
Freshly generated bindings will sometimes be required:
- to support new versions of bcc
- to regenerate older bindings with a newer version of bindgen
How to generate new bindings
Before you generate fresh bindings, you should have
rustfmt installed on your
$ rustup component add rustfmt $ rustup update
You may then build this crate using:
cargo build --features generate
The fresh bindings will be placed into
NOTE: you may need to make changes to
to add support for a new version of bcc
Adding newly generated bindings
To use the newly generated bindings, we must add them to the library.
- Move your generated bindings to a version specific module under
src/bccapi. Follow existing naming conventions.
- If you've added bindings for a new version:
src/bccapi/mod.rsto add the new module to this library.
Cargo.tomlto define a feature for the new bcc version.
rustfmt is required to generate new bindings.