Tauri vs. Electron - 実際のアプリケーションで比較する
(levminer.com)Authmeというクロスプラットフォーム2FAアプリで項目別に比較
- バンドル: OSのWebViewを使うTauriのほうがはるかに小さい。2.5MB vs. 85MB
- 起動時間: Tauri 約2秒 vs. Electron 約4秒
- RAM使用量:
- WindowsではTauri 80MB、Electron 120MBで大きな差はない
- LinuxではTauri 80MB、Electron側ではいろいろと立ち上がって500MB以上となり、大きな差が出る
- AppBackend: ElectronはNode.jsランタイムを使うためJavaScriptでコーディングすればよいが、TauriはRustでのコーディングが必要
- TauriのロードマップではPython、C++、Denoもサポート予定とのこと
- レンダリング: ElectronはWindows/macOS/LinuxのすべてでChromiumを利用し、TauriはWindows(Edge WebView2)/Linux(WebKitGTK)/macOS(WebKit)
- ブラウザごとの差異がありうるため、Tauriではポリフィルを使う必要がある場合がある
- セキュリティ: Tauriは非常に多くのセキュリティ機能を内蔵しており、デフォルトで安全
- 自動アップデート:
- Tauriのほうがよりシンプル。組み込みUpdaterがある(自前でアップデートサーバーを運用しなければならないという欠点はある)
- Electronではelectron-updaterがよく使われる。利点はGitHub Releasesから直接バイナリを取得できて便利なこと
- 開発者体験:
- TauriはCLIをインストールするだけで、すぐにすべてが使える(ホットリロード、バンドル、アプリ生成など)
- Electronはそういったものはなく、フレームワーク本体だけが提供される。ホットリロードやバンドルは自分で対応する必要がある
- Tauriの最大の利点は、あらゆるWebフレームワークと互換性があること
結論
- Tauriを選択
- まだ不足している部分はあるが、数年以内にTauriチームがElectronに追いつくだろう
- 特に期待しているのは、Denoをバックエンドとして使えるようになることと、より使いやすい自動アップデート、およびiOS/Android対応
6件のコメント
Tauri は独自にビルドしたエンジンではなく、システム上にある webview ライブラリを使っているようですね。
インストーラー容量を比較すると 2.5MB vs. 85MB で、
インストール後は 3.64MB vs. 221MB になりますね。
わあ、これは良さそうですね!
モバイルアプリ対応に本当に期待しています。
Rustaceanとして、Rustエコシステムが成長していくのはとてもうれしいですね。MacでElectronアプリを3つも立ち上げておく必要があるのですが、MacBookがかなり熱くなります(泣)
Tauri - 小さくて高速な実行ファイルを生成するデスクトップ向けWebアプリフレームワーク
Tauri v1.0 リリース
記事の中盤のセキュリティ部分で、Electron は Node API へフルアクセス可能だという話がありますが、
この
nodeIntegrationは 5.0 以降 false がデフォルト値で、20.0 からはサンドボックス化もされているため、Electron もそれなりに安全です。https://www.electronjs.org/docs/latest/tutorial/security