bcc-sys

Crates.iobcc-sys
lib.rsbcc-sys
version0.23.0
sourcesrc
created_at2017-10-22 04:17:26.513793
updated_at2021-11-23 22:43:43.085144
descriptionRust binding to BPF Compiler Collection (BCC)
homepagehttps://github.com/rust-bpf/bcc-sys
repositoryhttps://github.com/rust-bpf/bcc-sys
max_upload_size
id36526
size4,071,863
owners (github:rust-bpf:owners)

documentation

https://docs.rs/bcc-sys

README

Build Status

Rust binding for bcc.

Pre-requisites

  • bcc must be installed before using this binding.

Supported bcc versions

bcc 0.4.0 - 0.23.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.

Static linking

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 system. Install rustfmt with:

$ rustup component add rustfmt
$ rustup update

You may then build this crate using: cargo build --features generate

The fresh bindings will be placed into src/bccapi/generated.rs

NOTE: you may need to make changes to build.rs and/or wrapper.h 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:
  • Modify src/bccapi/mod.rs to add the new module to this library.
  • Modify Cargo.toml to define a feature for the new bcc version.

rustfmt is required to generate new bindings.

Commit count: 133

cargo fmt