コンテンツにスキップ

アプリのサイズ

Tauri はデフォルトで非常に小さなバイナリ・サイズになりますが、その一方で、その限界点を少し押し広げても問題はないでしょう。ここでは、最適な結果を得るためのヒントとコツをいくつか紹介します。

作業中のプロジェクトに対して、フロントエンドに依存しないで行なえる最も簡単なサイズ改善の一つが、「Cargo プロファイル」を追加することです。

Stable 版(安定版)の Rust ツールチェーンを使用するか、Nightly 版(ナイトリー版/最新開発版)の Rust ツールチェーンを使用するかによって、利用できるオプションが若干異なります。上級ユーザーでない限り、安定版のツールチェーンを使用することをお勧めします。

src-tauri/Cargo.toml
[profile.dev]
incremental = true # あなたのバイナリ・ファイルを、より小さなステップでコンパイル。
[profile.release]
codegen-units = 1 # LLVM により優れた最適化を許可。
lto = true # 「link-time-optimizations(lto)」を有効化。
opt-level = "s" # バイナリ・サイズ最小化を優先。速度優先の場合は「3」を使用。
panic = "abort" # 「パニック」ハンドラーを無効化しパフォーマンスを向上。
strip = true # デバッグ・シンボルの削除を実行。
  • incremental: バイナリをより細かな単位毎にコンパイルします。
  • codegen-units: コンパイル時間の最適化を犠牲にしてコンパイル時間を短縮します。
  • lto: リンク時の最適化を有効にします。
  • opt-level: コンパイラのフォーカス内容を決定します。「パフォーマンス」の最適化には 3 を、「サイズ」の最適化には z を、 その「中間」には s を指定します。
  • panic: エラー・ハンドリング時の「パニック・アンワインド」(異常・巻き戻し情報)を削除してサイズを縮小します。
  • strip: バイナリからシンボルまたはデバッグ情報を削除します。
  • rpath: バイナリ内に必要情報を書き込む(ハード・コーディングする)ことで、バイナリに必要な動的ライブラリを見つける手助けをします。
  • trim-paths: バイナリから部外秘の可能性がある情報を削除します。
  • rustflags: プロファイル毎に Rust コンパイラ・フラグを設定します。
    • -Cdebuginfo=0: ビルドに「debuginfo シンボル」を含めるかどうかを指定します。
    • -Zthreads=8: コンパイル時に使用されるスレッドの数を増やします。

プルリクエスト #12890「feat: add a new option to remove unused commands」で、tauri 設定ファイルに「未使用コマンドを削除する」新しいオプションが追加されました。

tauri.conf.json
{
"build": {
"removeUnusedCommands": true
}
}

「アクセス制御リスト(ACL)」で許可されていないコマンドを削除することで、使用しない機能に対して料金を支払う必要がなくなります。

《訳注》

ACL Access Control List: アクセス制御リスト

内部ではどのように動作しているのでしょうか?《クリックして表示》

tauri-cli は環境変数を介して tauri-build、および tauritauri-plugin のビルド・スクリプトと通信し、 ACL に基づき「許可されているコマンドのリスト」を生成させます。 このリストは generate_handler マクロによって使用され、そのリストに基づいて使用されていないコマンドが削除されます。

内部的な詳細としては: この環境変数は、現時点で REMOVE_UNUSED_COMMANDS に設定されており、プロジェクトのディレクトリ(通常は src-tauri ディレクトリ)に設定されます。 これがビルド・スクリプトに利用され、機能設定ファイル/capability file」を見つけるために使用されます。 推奨はされませんが、この方法を実行するのに tauri-cli を使用できないまたは使用したくない場合は、この環境変数を自分で設定することもできます。(ただし、これは実装の細部にかかわるため、安定性は保証されません)。

【※ この日本語版は、「Nov 4, 2025 英語版」に基づいています】


© 2026 Tauri Contributors. CC-BY / MIT