最近少しずつRustに手を出し始めています。 CPUバウンドとなっている重い処理をPythonから切り出してコンバートするユースケースを考えたときに、PythonからRustを呼び出すための仕組みが必要となります。 今回はPythonからRustバイナリを実行する (あるいはその逆) ためのバインディングを行うPyO3について、エラトステネスのふるいを実装しながら紹介します。 他の選択肢としてrust-cpythonもあるのですが、最近はPyO3の方がメジャーっぽいです 実行環境はMac OS X (10.14) を想定しています github.com パッケージの作成 ライブラリテンプレートを使ってeratosthenesパッケージを作成します。 加えてPyO3はnightlyバージョンのRust環境が必要ですので、インストールして切り替えています。 $ cargo new eratos