
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
writingeBPF programs:- simplify building CO-RE1
libbpfeBPF applications: write eBPF kernel code only and automatically exposing your data withperf eventorring bufferfrom kernel. - Automatically sample the data from hash maps and print
histsin userspace. - Automatically generate and config
command line argumentsfor eBPF programs. - You can writing the kernel part in both
BCCandlibbpfstyles.
- simplify building CO-RE1
- Build eBPF programs with
Wasm2: seeWasm-bpfproject- 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
distributingeBPF programs:- A tool for push, pull and run pre-compiled eBPF programs as
OCIimages in Wasm module - Run eBPF programs from
cloudorURLwithin1line of bash without recompiling, kernel version and architecture independent. - Dynamically load eBPF programs with
JSONconfig file orWasmmodule.
- 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/