Expand description
Rust bindings for the BCC compiler collection to enable eBPF instrumentation
Goals
- Provide idiomatic Rust bindings for the BCC compiler collection
- Mimic the Python BCC bindings https://github.com/iovisor/bcc
Examples
Re-exports
pub use perf_event::PerfEvent;
pub use perf_event::PerfEventArray;
pub use perf_event::PerfMap;
pub use utils::*;
Modules
Structs
- The
BPF
struct contains the compiled BPF code, any probes or programs that have been attached, and can provide access to a userspace view of the results of the running BPF programs. - A builder struct which allows one to initialize a BPF module with additional options.
- A
Kprobe
is used to configure and then attach a probe to a kernel function which runs on entry into that function. Must be attached to be useful. - A
Kretprobe
is used to configure and then attach a probe to a kernel function which runs on return from that function. Must be attached to be useful. - An object that can attach a bpf program to a socket which runs on every packet on the given interfaces
- A USDT context.
- A
Uprobe
is used to configure and then attach a uprobe to a userspace function on entry into that function. Must be attached to aBPF
struct to be useful. - A
UserspaceReturnProbe
is used to configure and then attach a uprobe to a userspace function on return from that function. Must be attached to aBPF
struct to be useful. - An object that can run BPF code as an XDP program that runs on every packet at the driver level.