WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。WebブラウザでRubyが動く世界がやってくる
今回は「WebAssembly/WASIに対応した「Ruby 3.2 Preview 1」公開。WebブラウザでRubyが動く世界がやってくる」についてご紹介します。
関連ワード (今年、実行、時期等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
新しくWebAssembly/WASI版にも対応した次期Rubyのプレビューリリース「Ruby 3.2 Preview 1」が公開されました。
これまでリリースされてきた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対応版が正式にリリースとなることが期待されます。