週刊とっしーぱんち

昭和生まれのブロガーが綴る、全力脱力系雑記帳

Rubyがブラウザでも動かせるようになる!? WebAssemblyとWASIとはなんぞ?

おはよーございます。

先日に引き続き、個人的に強い印象に残ったできごとを記事に残しておきたかったシリーズです。

いままで、Webサイトを制作するなかでブラウザ上で実行できるプログラム言語はほぼほぼJavaScript一択だと思っていました。少し前に書いていたこの記事も、JavaScriptというプログラム言語が前提にあって、そのなかでどんなライブラリを使うのか?という選び方をしていました。

osio-toshimasa.hatenablog.com

ところが、その前提を覆すようなニュースをみつけました。

www.publickey1.jp

なにやらRubyがブラウザで実行できるようになると。

WASMとWASIという技術を用いて実現できるようになると。

いまいちどういう理屈かはわかってないところが多いですが、僕の理解では以下の通り。

WASM(WebAssembly)とは?

  • ブラウザが実行できるバイナリコードの種類。
  • バイナリコードというのはコンピュータが実行できるように変換されたプログラムのこと。人間が書いたソースコードをもとに作られる。
  • 共通仕様化されているので、いろんなブラウザ(ChromeとかSafariとかFireFoxとか)であっても実行できる。

WASI(WebAssembly System Interface)とは?

  • WASMがブラウザの差異をなくすための仕様に対して、WASIはOS(WindowsとかMacとか)の差異をなくすための仕様。
  • ブラウザ外で動かせるWASMランタイムというのもある。有名なのはWasmarとLucetというものらしい。
  • ということは、WASI対応版のWASMをWASMランタイムから起動することで、どんなOSで実行可能なアプリケーションが作れるらしい。

この仕組みはRuby3.2で導入されるべく現在も作業が進められているそうなんです。

無事導入されたら、Rubyの可能性がまたひとつ広がっていきそうで楽しみですね😀

というか楽しみ過ぎて自分の環境でも動かせるのか試してみたいなあっていう欲がむくむく湧いてきたのでもう少しいろいろとしらべてみようと思います。

では、また!