Tauri完全に理解した

2022/03/31

@kfurumiya

自己紹介

古都こと @kfurumiya

株式会社Swish テックリード

好きな言語:TypeScript / Rust

故郷: ActionScript3(滅亡済み)

 

最近の悩み

 - 原神の螺旋12層の黄金王獣が嫌い

 - グラブルのバブさんソロが火属性だけクリアできない 

Tauri

Tauri

  • Rustで実装されたGUIアプリ開発フレームワーク
    • Electronのようにフロントエンド技術で作成する
    • OS標準のWebViewエンジンを使用する
  • コンパクトな容量
    • ElectronはChromiumを内蔵しているので大きい
  • 先日リリース候補になりました!
    • 正式版ではないけど使えはする

TauriとElectronと比較

実際のアプリでビルドして比較してみた

使い方

#インストール

npx create-tauri-app

 

# devモード

npm run tauri dev

 

#ビルド

npm run tauri build

利点 💕

  • サイズ小さい!
    • デフォで5MB、最適化オプション付きで3MBぐらい
  • OS側の機能が使いやすい
    • ElectronだとIPC意識しないと厳しい
    • Tauriだとconfigで有効化するだけ
  • 今どきのウェブアプリなら特に問題なく動く
    • 環境によってWebViewが違うとはいえ
    • 今どきなら差が出るようなAPI使わないだろうし…
    • 欠点にもなりうる

欠点 ☠️

  • ビルド遅い…
    • Rustだから仕方ない
  • クロスコンパイル厳しい
    • 現状未対応
    • 「GitHub Actionsで各環境のインスタンスでビルドする」が逃げ道
  • 現在はリモートURLを直で開けない?
    • ローカルのHTMLがエントリポイント
    • 0秒のリダイレクトを設定してして乗り切った
  • 環境依存
    • OSごとのWebView使うのでちょっとは差が出る

その他

  • 将来的にiOS/Android対応
    • モバイル対応は強い
  • 自動アップデータ標準搭載
    • Electronはちょっとコツがいる
  • Rustで拡張していける
    • 慣れてない人には難易度高いけど…

まとめ

  • Electron亜種の中でもかなり素直なTauri
    • RustでOSのWebViewを叩く
    • ブラウザ間の差異が小さくなってきた時代の産物
  • Electronの諸問題が解決されている
    • 容量やセキュリティなど
  • わりと癖もあるけど今どきのウェブアプリなら動く
    • Chromiumに依存しまくってると無理かも
  • まだ不安な部分もあるけど趣味レベルなら実用的

Tauri完全に理解した

By Koto Furumiya

Tauri完全に理解した

  • 1,148