TL;DR

C と C++ のライブラリに対する Rust の FFI バインディングを自動で生成するツール。

なぜ必要か

C のヘッダに合わせた Rust の型や関数宣言を手で書くと、間違いが入りやすい。bindgen を使えば、ヘッダからこれらを機械的に作れる。

仕組み

たとえば、2 つの整数フィールドを持つ構造体 CoolStruct と関数 cool_function を宣言した C のヘッダ cool.h を渡すと、同じフィールドを持つ #[repr(C)] の Rust の構造体と、extern "C" の関数宣言を生成する。Rust のコードからは、生成された型と関数を使ってライブラリを呼び出せる。

build.rs からライブラリとして使う方法と、コマンドラインから使う方法がある。コマンドラインのツールは次のようにインストールする。

$ cargo install bindgen-cli
$ bindgen -V
bindgen 0.71.1

関連

出典