homura-runtime
Sinatra や Sequel に依存しない、Opal + Workers の中核(README / ARCHITECTURE.md の要約)。
役割
require 'opal_patches'— Rack 等との現実的な互換パッチ。require 'homura/runtime'— Rack ハンドラ、KV / D1 / R2 / AI / Queue / DO / Cache などの Cloudflare バインディングラッパー(Cloudflare::*名前空間)。sinatra-homuraが Sinatra 経由で自動的にロードするので、ユーザーコードから直接 require することは通常ありません。homura build— ERB → アセット → Opal →patch-opal-evals.mjs→build/worker.entrypoint.mjsまで一括。
ビルド CLI
bundle exec homura build
homura では npm run build がこれを呼びます。コンシューマ向けに --standalone があり、Gemfile の path: から vendor/ を取り込みます。
build/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 表) | 未記載バージョンでの保証 |