Skip to content

saiintbrisson/bepeefe

Repository files navigation

BEPEEFE

BEPEEFE is a toy eBPF VM that doesn't do much, for now, at least. But executes (very simple) code. It supports the base32 conformance group, divmul32, divmul64, most of the base64, and aims to implement others fully in the Near Future™.

Supports array maps for now, but not all operations. You can lookup stuff though, and atomically fetch and add. Maps are generated from parsed BTF information using the libbpf map style.

It isn't nearly 1:1 with actual eBPF execution. For example, stacks have a limited size at the moment, as calculating it would require tracking register usage.

eBPF is a pretty complex tool with a pretty complex ecosystem. What better way to actually understand it other than implement it yourself, right?

You can try it out with:

$ cargo run -- <ebpf object file> <entry function name>
# or
$ just run examples/bpf/trace_print.c

About

An eBPF virtual machine for kicks and giggles

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published