ニュース
Rustの活用でElectronよりも軽くて速いアプリフレームワーク「Tauri」が安定版に
まずはデスクトップから。モバイル・Webへの対応も進行中
2022年6月16日 14:56
クロスプラットフォーム対応のアプリフレームワーク「Tauri」が6月16日(現地時間)、安定版となるv1.0に到達した。Web技術(HTML、CSS、JavaScript)でアプリのUIを構築できる点は「Electron」と同じだが、メインのプロセスを「Rust」言語で記述できる点がユニークで、インストーラーのサイズ、メモリ消費量、起動時間などを大きく改善できるという。
クロスプラットフォーム対応にもかかわらずアプリサイズをコンパクトにできる秘訣は、UIをOSネイティブのWebレンダラーに任せている点にある。つまり、Windowsの場合は「WebView2」、macOSの場合は「WebKit」がそのまま利用される(Linuxの場合は「WebKitGTK」が必要)。「Electron」のように巨大な「Chromium」ランタイムを同梱しなくて済むため、その分フットプリントは小さくなる。
これを実現しているのが、クロスプラットフォーム対応のWebViewレンダリングライブラリ「WRY」だ。そのほかにもタスクトレイやメニューバー、グローバルショートカットなどを提供する「TAO」などが組み合わされている。
「Rust」言語で記述されるメインプロセスは、このUIとシステムとの橋渡しを行う。プラットフォームによって異なるOSのシステムコールを統一的に行う手段のみを提供し、カーネルラッパーや仮想環境といった手段は用いないのも、アプリのコンパクトさの秘訣といえるかもしれない。
「Tauri」の対応プラットフォームは、以下の通り。現時点でカバーされているのはデスクトップのみだが、モバイルとWASM(WebAssembly)への対応も進んでいる。
- Windows 7/8/10
- macOS
- Linux
- iOS(進行中)
- android(間もなく登場)
気になるのは「Electron」との違いだが、早さや軽さ以外にも、「TAO」によるタスクトレイへの対応などがある。ちなみに、ライセンスは「MIT」または「Apache 2.0」となっている。
今後のロードマップとしては、モバイルアプリ開発への対応(モバイルバンドラー)、「Rust」以外のバインディング(Go、Nim、Python、C++など)の追加などが計画されている。今後の発展にも期待したい。