homura Docs App | Posts About Login
Ctrl+K

opal-homura

homura stack が使う Opal fork です。Ruby を Workers の V8 で実行できる JavaScript へコンパイルする土台で、アプリ側は通常どおり require 'opal' として扱います。

役割

Gemfile

gem 'opal-homura', '= 1.8.3.rc1.5', require: 'opal'

require: 'opal' を外すと既存の Opal toolchain が期待する require 名から外れます。アプリケーションコードから opal-homura を直接 require する必要はありません。

ビルド内での位置

homura build は Opal に -I app -I gems/... -I lib -I vendor -I build を渡し、アプリ、gem、vendored shim、precompiled templates をひとつの bundle にします。

できること / できないこと

できることできないこと
RubySinatra / Rack / Sequel など pure Ruby 中心のコードを compileC extension や OS process 前提の gem をそのまま実行
requirerequire 'opal' と既存 Opal 互換の入口を維持require 'opal-homura' を public API として扱う
runtimeWorkers の ESM entrypoint に載せる JS を生成Node サーバーを常駐させて Rack を動かす