✓ Uses Rust 2018 edition
|new 0.9.10||Feb 13, 2020|
|0.9.9||Jan 10, 2020|
|0.9.7||Dec 17, 2019|
|0.9.6||Nov 9, 2019|
|0.9.0||Oct 31, 2019|
#2 in #ebpf
147 downloads per month
A Rust eBPF toolchain.
The RedBPF project is a collection of Rust libraries to work with eBPF programs. It includes:
redbpf-probes- an idiomatic Rust API to write programs that can be compiled to eBPF bytecode and executed by the linux in-kernel eBPF virtual machine.
redbpf-macros- companion crate to
redbpf-probeswhich provides procedural macros to reduce the amount of boilerplate needed to produce eBPF programs.
redbpf, a user space library that can be used to parse and load eBPF programs written using
cargo-bpf, a cargo subcommand for creating, developing and building eBPF programs in Rust using the RedBPF APIs.
The easiest way to get started is to install
cargo-bpf, see the cargo bpf documentation for more info.
To see how and what RedBPF can be used for, check out the ingraind project.
In order to build some of the code here, you will need the following:
- Linux 4.19+, with a build tree. The build tree is picked up from standard locations, or the
- LLVM 9, or an LLVM version compatible with the Rust release you're using to build
- The latest stable Rust compiler. We only promise to build with the latest stable and nightly compilers.
This repository contains code from other software in the following directories, licensed under their own particular licenses:
bpf-sys/libelf/*: GPL2 + LGPL3
bpf-sys/bcc/*: Apache2, public domain
include/bpf_helpers.hLGPL2 + BSD-2
include/bpf_helper_defs.h: LGPL2 + BSD-2
bpf-sys/libbpf: LGPL2 + BSD-2
Where '+' means they are dual licensed.
RedBPF and its components, unless otherwise stated, are licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.