Rust向けeBPFライブラリ「aya」が公開

 Rust向けのeBPF(extended Berkeley Packet Filter)ライブラリ「aya」が公開された。BPFプログラムをRustで作成できることを目指す。

 ayaは、Rust向けのeBPF(extended Berkeley Packet Filter)ライブラリ。eBPFはLinuxカーネル内でサンドボックス化されたユーザーのプログラムを動かすことができる技術。libbpgライブラリ、bccツールチェーンを使用しないピュアなRust実装で、libcクレートを使ってシステムコールを実行する。開発したのはAlessandro Decina氏で、約6ヶ月前に開発を開始、今回初の公開となる。バージョンは0.10。

 オペレーションと開発者体験にフォーカスし、BPF Type Format(BTF)をサポートした。bpf-to-bpfのファンクションコールとグローバル変数などもサポートし、eBPFプログラムを他のプログラムのように構造することができるという。arrays、hash mapsなど多数のマップ、プログラムをサポートした。asyncのサポートもオプトイン形式で提供する。LinuxシステムコールAPI上に構築した標準Cライブラリ実装であるmuslとリンクすることで、”一度コンパイルすれば、どこでも動く”の実現につながるとしている。

 今後は、APIの安定性などに取り組む。正式版(バージョン1.0)公開は2022年1月を目指す。

aya
https://github.com/alessandrod/aya