WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。

新しくWebAssembly/WASI版にも対応した次期Rubyのプレビューリリース「Ruby 3.2 Preview 1」が公開されました

fig

これまでリリースされてきたLinux版やWindows版、Mac版などのRubyバイナリに加えて、WebAssembly/WASI版のRubyが登場することになります。

これにより、LinuxやWindowsなどの上で実行していたRubyのアプリケーションが、これからはWebブラウザなどWebAssembly/WASIに対応したプラットフォーム上でも実行できるようになることが期待されます。

CRubyをコンパイルしてWebAssembly/WASI対応に

Ruby言語のリファレンス実装となっているインタプリタのソースコードはC言語で実装されているため、一般にこのソースコードまたはその実装を「CRuby」と呼びます。

このCRubyのソースコードをコンパイルすることで、Windows版RubyやLinux版Rubyなどのバイナリを生成するわけです。

今年の1月、このCRubyをWebAssemblyにコンパイルしてWebAssemblyバイナリ版のRubyを生成する作業が始まりました。

これは単にWebAssemblyバイナリへのコンパイルを通るようにするだけでなく、ファイルI/OなどOSごとに異なるAPIを抽象化する業界標準仕様であるWASI(WebAssembly System Interface)へも対応することで、さまざまなプラットフォーム上のWebAssembly/WASI環境でそのまま実行可能なWebAssemblyバイナリとなります。

参考: RubyがWebAssemblyのWASI対応へ前進。ブラウザでもサーバでもエッジでもどこでもWebAssembly版Rubyが動くように

その移植作業は先月に終了したことが報告されています。

参考:RubyのWebAssembly/WASIへの移植が実現、プレリリース版のバイナリ公開。RubyGemsにも対応

Rubyは毎年クリスマスのタイミングでメジャーバージョンアップがリリースされてきました。Ruby 3.2もその時期までプレビューリリースやアルファ版、ベータ版とリリースを繰り返し、次のメジャーバージョンアップでWebAssembly/WASI対応版が正式にリリースとなることが期待されます。