eunomia-bpf: simplify and enhance eBPF with CO-RE1 and WebAssembly2
A compiler and runtime framework to help you build and distribute eBPF program easier.
Introduction
eunomia-bpf
is a dynamic loading library/runtime and a compile toolchain framework, aim at helping you build and distribute eBPF programs easier.
With eunnomia-bpf, you can:
- A library to simplify
writing
eBPF programs:- simplify building CO-RE1
libbpf
eBPF applications: write eBPF kernel code only and automatically exposing your data withperf event
orring buffer
from kernel. - Automatically sample the data from hash maps and print
hists
in userspace. - Automatically generate and config
command line arguments
for eBPF programs. - You can writing the kernel part in both
BCC
andlibbpf
styles.
- simplify building CO-RE1
- Build eBPF programs with
Wasm
2: seeWasm-bpf
project- Runtime, libraries and toolchains to write eBPF with Wasm in C/C++, Rust, Go...covering the use cases from
tracing
,networking
,security
.
- Runtime, libraries and toolchains to write eBPF with Wasm in C/C++, Rust, Go...covering the use cases from
- simplify
distributing
eBPF programs:- A tool for push, pull and run pre-compiled eBPF programs as
OCI
images in Wasm module - Run eBPF programs from
cloud
orURL
within1
line of bash without recompiling, kernel version and architecture independent. - Dynamically load eBPF programs with
JSON
config file orWasm
module.
- A tool for push, pull and run pre-compiled eBPF programs as
For more information, see https://github.com/eunomia-bpf/eunomia-bpf/tree/master/documents/introduction.md.
1
CO-RE: Compile Once – Run Everywhere 2: WebAssembly or Wasm: https://webassembly.org/