Webブラウザで唯一実行が保障されているプログラミング言語はJavaScriptです。しかし規模の大きなシステムを書きたがらなかったり、サーバサイドは別な言語を使っているケースもあります。 そこで今回はRubyでWebアプリケーションが書けるPrismを紹介します。

Prismの使い方

デモです。

Prismのコードです。Rubyで書かれているのが分かります。

class HelloWorld < Prism::Component
  attr_accessor :name

  def initialize(name = "World")
    @name = name
  end

  def render
    div(".hello-world", [
      input(onInput: call(:name=).with_target_data(:value)),
      div("Hello, #{name}")
    ])
  end
end

Prism.mount(HelloWorld.new)

PrismはmrubyをEmscriptenでWebAssembly化し、RubyのコードをWebブラウザ上で処理して画面に表示しています。Opalに似ていますが、パフォーマンスはPrismの方が良いでしょう。mrubyでできることに限定されるでしょうが、非常に面白いソフトウェアです。

PrismはJavaScript/Ruby製のオープンソース・ソフトウェア(MIT License)です。

prism-rb/prism: Build frontend web apps with Ruby and WebAssembly