Rust extension gem
C拡張 gem の作り方
C拡張の書き方
Rust extension
Ruby 3.1.1 以上が必須
Rust extension が入ったPR
ブログポスト
example
Rust extension を書くための crate
すごく高機能ぽい
Rust の struct と Ruby の class の紐付け
自動で型変換してくれる
変な値が来たらエラーを返してくれる
ruby の C API のいい感じのラッパー
普通に gem 作るときは magnus 使って、Ruby の C API を触る必要があったら coffret 使うのが良さそう
---
ruby は 3.1.1 以上にする
今なら 3.1.2 がよさそう
gem update --system して、3.3.11 以上がインストールされることを確認
bundle gem hoge
rake-compiler と rb_sys を入れる
extconf 周りを雑に整える
cd ext/shuffle && cargo init --lib
magnus を使うので Rust 1.51 以上じゃないとだめ
---
docker の ruby 公式イメージだと magnus のビルドに失敗する
ruby が shared library を作れるようになってないから?正直良くわからない