アーキテクチャ(Phase 15 確定)
セルフホスト
このドキュメントサイト自身が homura の Worker 上で配信されており、app/routes/canonical_all.rb のルートと views/docs_*.erb がそのまま本番に載っています。コードとドキュメントのズレを減らすための構成です。
3 gem の関係
- homura-runtime — 土台(ビルド、Rack、バインディング)。
- sinatra-homura — Sinatra 向け(パッチ + JWT / Scheduled / Queue)。
- sequel-d1 — Sequel の D1 アダプタ(runtime の D1 ラッパ上)。
ビルドパイプライン
ERB プリコンパイル → アセット埋め込み → Opal コンパイル → patch-opal-evals.mjs → worker.entrypoint.mjs 生成、の順です(ARCHITECTURE.md)。
Phase 15 の整理
モノリス hello.rb からルートを canonical_all.rb に集約し、3 gem に責務分割。コンシューマが path: なしで組み立てやすいよう CLI とテンプレートを揃えました。
依存関係(Mermaid)
レンダラ無しで読めるよう、ソースをそのまま掲載します(Mermaid 対応ビューアで表示可能)。
flowchart LR
subgraph after["Phase 15-E"]
E[worker.entrypoint.mjs] --> S[setup-node-crypto.mjs]
E --> O[build/*.mjs Opal bundle]
E --> M[worker_module.mjs]
end
静的図はリポジトリの public/architecture.svg も参照できます(/architecture.svg)。