30 ポイント 投稿者 xguru 2022-08-23 | 6件のコメント | WhatsAppで共有

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件のコメント

 
joone 2022-08-29

Tauri は独自にビルドしたエンジンではなく、システム上にある webview ライブラリを使っているようですね。

 
kayws426 2022-08-23

インストーラー容量を比較すると 2.5MB vs. 85MB で、
インストール後は 3.64MB vs. 221MB になりますね。

 
ifmkl 2022-08-23

わあ、これは良さそうですね!

 
jjpark78 2022-08-23

モバイルアプリ対応に本当に期待しています。

 
freedomzero 2022-08-23

Rustaceanとして、Rustエコシステムが成長していくのはとてもうれしいですね。MacでElectronアプリを3つも立ち上げておく必要があるのですが、MacBookがかなり熱くなります(泣)

 
xguru 2022-08-23

Tauri - 小さくて高速な実行ファイルを生成するデスクトップ向けWebアプリフレームワーク
Tauri v1.0 リリース

記事の中盤のセキュリティ部分で、Electron は Node API へフルアクセス可能だという話がありますが、
この nodeIntegration は 5.0 以降 false がデフォルト値で、20.0 からはサンドボックス化もされているため、Electron もそれなりに安全です。
https://www.electronjs.org/docs/latest/tutorial/security