homura-runtime
Sinatra や Sequel に依存しない、Opal + Workers の中核(README / ARCHITECTURE.md の要約)。
役割
require 'opal_patches'— Rack 等との現実的な互換パッチ。require 'cloudflare_workers'— Rack ハンドラ、KV / D1 / R2 等のバインディング。bin/cloudflare-workers-build— ERB → アセット → Opal →patch-opal-evals.mjs→worker.entrypoint.mjsまで一括。
ビルド CLI
bundle exec cloudflare-workers-build
homura では npm run build がこれを呼びます。コンシューマ向けに --standalone があり、Gemfile の path: から vendor/ を取り込みます。
worker.entrypoint.mjs
gems/homura-runtime/docs/ARCHITECTURE.md に定義どおり:
wrangler.tomlのmainは生成されたbuild/worker.entrypoint.mjs。- エントリは
setup-node-crypto→ Opal バンドル(副作用ロード)→worker_module.mjsの固定文字列 import。 - ランタイム可変パスでの
import(dynamicPath)は採用しない方針。
できること / できないこと
| できること | できないこと | |
|---|---|---|
| 設定 | wrangler.toml を公式フローでサポート | ツールチェーン自動生成での wrangler.json メイン運用 |
| エントリ | codegen で安定した import グラフ | Opal バンドルを動的ロードで差し替え |
| 検証環境 | Ruby 3.4.x / Node ≥20 / Wrangler ^3.99 / Opal = 1.8.3.rc1(README 表) | 未記載バージョンでの保証 |