A talk I gave at the Linux Plumbers Conference 2021 on using Rust and Aya to improve the eBPF developer experience.
Video
Slides
Abstract
Rust is becoming an increasingly popular choice as a systems programming language. In fact, it's been the #1 most loved language on Stack Overflow for the last 6 years. Aside from being fast, type safe and memory safe, its tooling is excellent which yields high developer productivity. It has been used to write embedded systems software, it is central to the WebAssembly ecosystem, and it is very close to being used inside the Linux Kernel.
eBPF offers many exciting possibilities, but getting started developing eBPF programs is hard. While there are many eBPF libraries that target writing userspace applications in most popular programming languages, very few of them also seek to improve the experience of writing, building and debugging the eBPF program itself.
Aya is an eBPF library built for exactly this purpose. Using Aya, we seek to improve the eBPF developer experience with Rust!
In this talk, we demonstrate how Aya can be used to quickly develop an eBPF application, covering:
- Quickly starting a new eBPF project
- Compiling Rust programs to eBPF bytecode
- Generating bindings to kernel types using BTF
- Seamless sharing of code between eBPF and user space
- Loading eBPF programs from user space and interacting with maps