A talk I gave with Kemal Akkoyun (Polar Signals) at Cloud Native eBPF Day EU 2022 on writing safer eBPF programs with Rust.
Video
Abstract
eBPF being a promising technology is no news. And C is the defacto choice for writing eBPF programs. The act of writing C programs is an error-prone process. Even though the eBPF verifier makes life a lot easier, it is still possible to write unsafe programs and make trivial mistakes that elude the compiler but are detected by the verifier at load time — mistakes that are preventable with compile-time checks. It is where Rust comes in.
Rust is a language designed for safety. Recently the Rust compiler gained the ability to compile to the eBPF virtual machine, and Rust became an official language for Linux. We discover more and more use cases where eBPF can be helpful, and we find more efficient ways to build safe eBPF programs in parallel with these developments.
We demonstrate how we built applications combining Rust in the data plane for safety and Go in the control plane for development pace, targeting Kubernetes for security, observability, and performance tuning.