Closed willfindlay closed 3 years ago
@qmonnet Thanks for the review. I agree that this could probably be moved somewhere else if needed -- I also had a very difficult time figuring out where it most belongs since the libraries seem to be scattered everywhere. My motivation for adding it between libbpf and bpftool was to keep library alternatives next to each other, but it could probably be moved to the bottom of that section.
I don't think we have any documentation about eBPF library code just yet, since the eBPF side of Aya is actually fairly new (although an official release is planned soon). But I do have an example for you. aya-log is a Rust crate that lets you use the standard Rust logging interface in your eBPF programs. It transparently wraps a perf buffer that submits the events to userspace and supports (almost) arbitrary length strings and data types (so long as they implement the uDisplay trait). We have plans to introduce other such "eBPF-side libraries" (for example an aya-security crate that exposes helpers to make it easier to write security audit LSM programs).
Also, if you would be interested I might be able to take on a large refactor of this list that creates a dedicated "Libraries" section at some point over the next few weeks.
@qmonnet Thanks for the review...
Ok, for now I merged it as is.
I don't think we have any documentation about eBPF library code just yet, ...
Your example looks great, thanks for the pointer. Interesting to see how you handle the libraries for eBPF programs too, looking forwards to more library code :).
Also, if you would be interested I might be able to take on a large refactor of this list that creates a dedicated "Libraries" section at some point over the next few weeks.
Totally interested. I've thought of doing it myself but I'm busy on a number of other things at the moment, so if you have some cycles I'm happy to help and review. Please do open an issue and let's agree on the changes before you spend too much time moving entries around, though :).
Some possibly related material for reflection: I like Dave Thaler's slides from the eBPF Day, where he exposes the different “architectural components” that exist for eBPF today. Maybe we'd need some section on the core infrastructure projects, one on the libraries, and then something for the rest of the projects that build on top of eBPF. :thinking:
Aya is a new eBPF library fully written in Rust without any dependencies on libbpf. It has a focus on developer experience and operability and supports writing eBPF programs in Rust and distributing library code over crates.io that can be shared between eBPF programs.
Signed-off-by: William Findlay william@williamfindlay.com