Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saiintbrisson/bepeefe
An eBPF virtual machine for kicks and giggles
https://github.com/saiintbrisson/bepeefe
ebpf
Last synced: about 4 hours ago
JSON representation
An eBPF virtual machine for kicks and giggles
- Host: GitHub
- URL: https://github.com/saiintbrisson/bepeefe
- Owner: saiintbrisson
- License: apache-2.0
- Created: 2024-04-15T19:41:57.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-11-19T02:21:16.000Z (about 2 months ago)
- Last Synced: 2024-11-19T03:24:27.658Z (about 2 months ago)
- Topics: ebpf
- Language: Rust
- Homepage:
- Size: 60.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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:
```shell
$ cargo run --
# or
$ just run examples/bpf/trace_print.c
```[conformance group]: https://github.com/torvalds/linux/blob/master/Documentation/bpf/standardization/instruction-set.rst#114conformance-groups