Skip to content

Tauri への移行検討(Bun compile の 84MB 固定費を外す) #5

Description

@MotimotiNotch

背景(実測)

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 では HttpFsTauriFs の差し替えが実際に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 は純粋関数なのでフロントへ移動するだけで済むはず

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions