Tauri はデフォルトで多くの機能を有効にしていますが、使用していない API やフィーチャーフラグを無効化することで、バイナリサイズとセキュリティリスクを削減できます。
1. 不要なプラグインの削除
Tauri v2 では、ファイルシステムアクセスやシェルコマンド実行などの機能はプラグインとして提供されています。
src-tauri/Cargo.toml の [dependencies] に含まれているプラグインのうち、使用しないものを削除することで、関連するコードがバイナリから除外され、サイズを削減できます。
[dependencies]
tauri = { version = "2.0.0", features = [] } # features を最小限に
# tauri-plugin-shell = "2.0.0" <-- 使わないなら削除
# tauri-plugin-fs = "2.0.0" <-- 使わないなら削除
2. Cargo features の最適化
依存しているクレート(例: tokio, serde 等)のデフォルト機能 (default-features) に不要なものが含まれている場合があります。
default-features = false を指定し、必要な機能のみを明示的に有効にします。
[dependencies]
# full ではなく必要なものだけ選ぶ
tokio = { version = "1", default-features = false, features = ["rt-multi-thread", "macros", "fs"] }
# serde_json の float 処理などが不要なら外すなど
serde = { version = "1", default-features = false, features = ["derive"] }
3. WebView の機能制限
フロントエンドで使用しない機能を無効化すると、メモリ使用量を削減できる場合があります。
tauri.conf.json:
{
"app": {
"windows": [
{
"fileDropEnabled": false, // ファイルドロップを使わないなら false
"center": true
}
]
}
}