ニュース

Rustの活用でElectronよりも軽くて速いアプリフレームワーク「Tauri」が安定版に

まずはデスクトップから。モバイル・Webへの対応も進行中

「Tauri」の公式サイト

 クロスプラットフォーム対応のアプリフレームワーク「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」などが組み合わされている。

「Tauri」を構成するコンポーネントとその周辺ライブラリ

 「Rust」言語で記述されるメインプロセスは、このUIとシステムとの橋渡しを行う。プラットフォームによって異なるOSのシステムコールを統一的に行う手段のみを提供し、カーネルラッパーや仮想環境といった手段は用いないのも、アプリのコンパクトさの秘訣といえるかもしれない。

 「Tauri」の対応プラットフォームは、以下の通り。現時点でカバーされているのはデスクトップのみだが、モバイルとWASM(WebAssembly)への対応も進んでいる。

  • Windows 7/8/10
  • macOS
  • Linux
  • iOS(進行中)
  • android(間もなく登場)

 気になるのは「Electron」との違いだが、早さや軽さ以外にも、「TAO」によるタスクトレイへの対応などがある。ちなみに、ライセンスは「MIT」または「Apache 2.0」となっている。

「Electron」との比較(「GitHub」のプロジェクトサイトより引用)

 今後のロードマップとしては、モバイルアプリ開発への対応(モバイルバンドラー)、「Rust」以外のバインディング(Go、Nim、Python、C++など)の追加などが計画されている。今後の発展にも期待したい。