Rust で Ruby の拡張を書くことができるらしい
私は Windows 使いなので Windows を使って Rust で Ruby を拡張したい。 最近(といっても半年前)rubygem が Rustで書けるようになったらしいので書いていきたい。
Ruby をインストール
ここから +DevKit のインストーラーを使ってインストール
RubyInstaller2でMinGWも入れます。
MinGW版Rustをインストール
こちらを参考に MinGW版Rustをインストール
PATH / PKG_CONFIG_PATH / XDG_DATA_DIRS は DevKit内のMInGWのパスを指定します
pacman のインストールは clang のパッケージまでやりました。
pacman -Syuu pacman -S mingw-w64-x86_64-toolchain base-devel msys2-devel pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-llvm mingw-w64-x86_64-clang-tools-extra
Ruby拡張を書く
上記を参考に作成します。
gem は rb_sys と rake-compiler をインストールしておきましょう
gem install rb_sys gem install rake-compiler
bundle gem
の行は 写経すると動かないので bundle gem rust_uuid --mit --ext
としましょう。
まとめ
Ruby は YJIT も Rust で書き直されていて、 Rust と Rust の親和性はどんどん高まっていますね。 Matz は コアはずっとC言語だろうと言われていますが、 エコシステム(特にC拡張部分) は Rust でどんどん置き換わっていくかもしれませんね。