トラック B
13:40 - 14:05 (JST)
この発表では、Rustを使ってRubyのライブラリを作った話をします。 Rubyのエコシステムにも近年Rustを使ったコードが入るようになりました。例えばJITコンパイラのYJITは当初Cで記述されていましたが、その後Rustに書き換えられています。また、これまでのRubyの拡張ライブラリ(Gem)はCで記述するのが普通でしたが、テンプレートにRustを選択できるようになり、Rustで記述されたGemを気軽に作れるようになっています。
今回私が開発したkompoというGemを紹介します。これはRubyスクリプトとRubyをワンバイナリにするGemです。この実装のうちRubyを拡張する部分や、CLIをRustを使って実装しています。このGemでワンバイナリにしたプログラムを動かすには、ファイルパスからファイルの中身を読み出す簡易的なファイルシステムと、ワンバイナリに含めたいファイルを収集し、メタデータなどを集めたオブジェクトファイルを吐き出す機能が必要です。
これらの実装をRustを使ったことによるメリットや、実装の設計を実際のコードと共に紹介したいと思います。
STORES でwebエンジニアをしています。 Rubyで書けるゲームエンジンやワンバイナリツールを作ったりしてます。
Copyright © Rust.Tokyo 2024 all rights reserved.