背景(実測)
Sirube の技術選定で、Bun compile による単体exe化のコストが実測で確定した。
| 成果物 |
実サイズ |
| 本リポジトリ v0.1.0 exe(Bun compile) |
86.4 MiB |
| 本リポジトリ v0.2.1 配布zip |
39.5 MiB |
| Sirube exe(Tauri) |
10.2 MiB |
| Sirube インストーラ(NSIS) |
2.1 MiB |
| 参考: 旧Go版 exe |
10.4 MiB |
重要なのは内訳で、86MB のうち埋め込み資産は約 2.5MB(ts/web 2.1M + ts/assets 368K)しかなく、残り約84MB は Bun ランタイム本体。資産やコードを削っても縮まない固定費である。
Tauri は OS の WebView2 を使うためブラウザエンジンを同梱しない。Sirube 側では同じ TypeScript のまま 10.2MB に収まることを実測で確認済み。
提案
本リポジトリを Sirube と同じ土台(Tauri + TS)へ移行し、サーバ層(HTTP / ポート 8788)を廃止する。
副次的な効果:
- 配布物の AV スキャン待ちとダウンロード摩擦が実質解消(README に既知の痛点として記載しているもの)
fetch の往復が消えるため、ファイル監視がネイティブになる
見積もり(Sirube とは規模が違う点に注意)
Sirube では HttpFs → TauriFs の差し替えが実際に1行で済んだが、それはストアのインターフェースが1箇所に閉じていたため。本リポジトリは同じ形になっていない。
- サーバ側 API ルート: 93 本(
ts/server/main.ts)
- フロント側の
/api/ 参照: 160 箇所 / 16 ファイル
- 多い順:
collections.ts 23 / loadouts.ts 17 / inspector.ts 17 / stats.ts 16 / wfcd-wizard.ts 11
- HTML ページ: 8 枚
つまり Sirube の「差し替え1行」は再現しない。実作業は API 層をストア呼び出しへ畳み直すリファクタが主になる。
着手条件(ゲート)
Sirube の Tauri 版が実機で起動し、UX 確認が通ってから着手する。
現時点で Sirube 側は「ビルドが通っただけで実機起動は未実施」。ここが未検証のまま本リポジトリまで動かすと、失敗したときに戻す先が2つに増える。
作業メモ(着手時)
- Windows ビルドは
scripts/with-msvc.bat 方式を正とする(Git Bash から直に link を呼ぶと GNU coreutils の link に解決されて extra operand で落ちる)
- Tauri の capabilities は必要な権限のみに絞る(Sirube では11権限)。CSP も明示する
engine / model / dsl は純粋関数なのでフロントへ移動するだけで済むはず
背景(実測)
Sirube の技術選定で、Bun compile による単体exe化のコストが実測で確定した。
重要なのは内訳で、86MB のうち埋め込み資産は約 2.5MB(
ts/web2.1M +ts/assets368K)しかなく、残り約84MB は Bun ランタイム本体。資産やコードを削っても縮まない固定費である。Tauri は OS の WebView2 を使うためブラウザエンジンを同梱しない。Sirube 側では同じ TypeScript のまま 10.2MB に収まることを実測で確認済み。
提案
本リポジトリを Sirube と同じ土台(Tauri + TS)へ移行し、サーバ層(HTTP / ポート 8788)を廃止する。
副次的な効果:
fetchの往復が消えるため、ファイル監視がネイティブになる見積もり(Sirube とは規模が違う点に注意)
Sirube では
HttpFs→TauriFsの差し替えが実際に1行で済んだが、それはストアのインターフェースが1箇所に閉じていたため。本リポジトリは同じ形になっていない。ts/server/main.ts)/api/参照: 160 箇所 / 16 ファイルcollections.ts23 /loadouts.ts17 /inspector.ts17 /stats.ts16 /wfcd-wizard.ts11つまり Sirube の「差し替え1行」は再現しない。実作業は API 層をストア呼び出しへ畳み直すリファクタが主になる。
着手条件(ゲート)
Sirube の Tauri 版が実機で起動し、UX 確認が通ってから着手する。
現時点で Sirube 側は「ビルドが通っただけで実機起動は未実施」。ここが未検証のまま本リポジトリまで動かすと、失敗したときに戻す先が2つに増える。
作業メモ(着手時)
scripts/with-msvc.bat方式を正とする(Git Bash から直にlinkを呼ぶと GNU coreutils のlinkに解決されてextra operandで落ちる)engine/model/dslは純粋関数なのでフロントへ移動するだけで済むはず