やじうまの杜

「Ruby」環境がWebブラウザー上で動作する時代に! サーバーを介さずに処理が完結

「Ruby」言語のWebAssembly/WASIポートを使ってファイルはたった51行のHTMLだけ

 「やじうまの杜」では、ニュース・レビューにこだわらない幅広い話題をお伝えします。

Ruby WASM/WASIを使ったローカル実行環境

 最近の「Ruby」言語はWebブラウザーでも動作するのだとか。しかも、実行する際にWebサーバーとのやりとりは不要で、処理はローカルで完結するのだそう。

 ソースコードは「GitHub」で公開されていますが、ファイルは「index.html」の1枚だけで、その内容もたったの51行。とってもシンプルです。「Ruby」言語のWebAssembly/WASI実装をダウンロードして読み込み、テキストボックスに入力されたRubyコードを評価(eval)させて、もう一つのテキストボックスに出力している仕掛けになっているようですね。

ソースコード

 WebAssemblyは皆さんもご存じの通り、Webブラウザーで動作可能なバイナリ形式のこと。WASI(WebAssembly System Interface)はそれをWebブラウザー以外の環境――WindowsやMac、Linuxなど――でも実行できるようにしたものだそうです。

 セキュリティも考慮されており、ファイルやネットワークといったホストOSのリソースへのアクセスを提供しつつ、悪い影響を及ぼさないようサンドボックス化されています。小さな仮想マシンのようなものを想像すればよいのでしょうか。

 最近はWebブラウザーで「Debian」が動いたりしていますが、なんだかすごい世の中になってきましたね(小並感)。