Tauri 1.0が正式リリース!概要や特徴、Electronとの違いを解説
thumb_tauriver1_01
Tauri 1.0が正式リリース!概要や特徴、Electronとの違いを解説
アンドエンジニア編集部
2022.09.11
この記事でわかること
TauriはWeb技術を活用してデスクトップアプリケーションを作成できるフレームワークである
TauriはRust言語を使用し、高いパフォーマンスと安全性が特徴
TauriはElectronの優れた特徴を備えながら軽量化・安全性向上を目指している

Tauri 1.0がリリースされた

img_tauriver1_01

2022年6月19日(現地時間)、Web技術のHTML・CSS・JavaScriptを使ってデスクトップアプリを作成できるフレームワークとして開発が進められている「Tauri」のバージョンが1.0に到達したことが、Tauriの公式ブログで発表されました。9ヶ月のベータ版と4ヶ月のリリース候補版を経てバージョン1.0に達しました。

この記事では、Tauriを使ってみようと考えている方のために、Tauriの特徴や使用するメリット、先行する「Electron」との違いなどについて解説していきます。

【参考】:Tauri 1.0 Release | Tauri Apps

Tauriとは

Tauriはオープンソースで開発されている、デスクトッププラットフォームのアプリケーションを開発するためのツールキットです。Windows・iOS・Linuxなどのクロスプラットフォーム対応のデスクトップアプリを作成することができます。

同種のテクノロジーとして先行している「Electron」の優れた特徴を備えながら、さらに軽量で高い安全性を目指して開発されています。

Tauri開発者コミュニティでは、Tauri開発者が課題を提出したりワーキンググループに参加したり、寄付をするなど、Tauriの開発に貢献しています。

【参考】:What is Tauri? | Tauri Apps 【参考】:tauri/CONTRIBUTING.md at dev · tauri-apps/tauri · GitHub

Tauriの特徴

img_tauriver1_02

ここでは、Tauriが持つ特徴を紹介します。主な特徴としては、プログラミング言語としてRustを採用していること、クロスプラットフォーム対応、OS標準のブラウザでレンダリングすることなどが挙げられます。

プログラミング言語「Rust」を使用する

TauriのメインプロセスはRustで作成します。Rustは非常に高速でメモリ効率が良いことが特徴です。また、ガベージコレクションがないためパフォーマンスが高く、メモリ安全性とスレッド安全性にも優れています。

また、Tauriのアプリケーションのバックエンドは、フロントエンドがやり取り可能なAPIを備えた、Rust製のライブラリ群で構成されます。

【参考】:tauri - Rust 【参考】:Rustプログラミング言語

Rust 1.56.0最新バージョンがリリース!将来性がC超の理由

クロスプラットフォーム対応

Tauriは、Windows・macOS・Linuxに対応するクロスプラットフォームの開発が行えます。

Rust製のライブラリの1つである「TAO」がクロスプラットフォームアプリケーションウィンドウ作成を担っています。「TAO」は上記のOS以外にiOS、Androidにも対応しており、Tauriも将来的にこれらのOSを搭載したモバイルに対応することが計画されています。

【参考】:GitHub - tauri-apps/tao: The TAO of cross-platform windowing. A library in Rust built for Tauri.

OSが備えるWebView機能を利用する

Tauriは、レンダリングを行うためのレンダリングエンジンを同梱していません。TauriはRust製クロスプラットフォームWebViewレンダリングライブラリの「WRY」を使用することにより、レンダリングをOS標準のブラウザで行うことができます。

各OSのWebView機能として、WindowsではWebView2、macOSではWebKit、Linuxではgtk-rsを使用します。「WRY」の抽象化レイヤ経由でこれらを呼び出すことでOS間の差異を吸収し、クロスプラットフォームを実現するとともに、コンパクトで高速なユーザーインターフェースの構築が可能です。

【参考】:GitHub - tauri-apps/wry: Cross-platform WebView library in Rust for Tauri.

TauriとElectronの違い

img_tauriver1_03

Electronは、Tauriに先行するWindows・macOS・Linuxのデスクトップアプリ開発フレームワークです。Visual Studio CodeやTwitchなど、大手企業が提供するアプリでElectronを採用しているものも多くあります。ここでは、TauriとElectronの違いを解説します。

【参考】:Electron | JavaScript, HTML, CSSによるクロスプラットフォームなデスクトップアプリ開発

メインプロセスの記述言語

大きな違いの1つは、使用するメインプロセスの記述言語です。TauriはRustを使用しますが、ElectronはメインプロセスをJavaScriptで構築してNode.jsで実行しています。

これによりHTML・CSSとJavaScriptでデスクトップアプリの開発ができるため、デスクトップアプリ開発の経験が少ないWebアプリエンジニアでも取り組みやすいというメリットがあります。

【参考】:はじめに | Electron

HTMLからJavaを動かせる?JavaScriptを動かす方法も解説

ユーザーインターフェースのレンダリング方法

もう1つの違いとして挙げられるのは、ユーザーインターフェースのレンダリング方法です。

TauriがOS標準のWebView機能でレンダリングするのに対し、Electronはレンダリングのために、Chromiumブラウザを丸々内蔵しているのが大きな特徴です。ChromiumはGoogleChromeのベースとなったオープンソースのWebブラウザです。

Tauriのメリット

img_tauriver1_04

Tauriを使用するメリットとして、Electronに比べてプログラムサイズを小さく抑えることができ、効率的で安全性が高い、という点があります。

Tauriはプログラムサイズが小さい

Electronは、Node.jsとChromiumをアプリケーションにバンドルしますが、Tauriでは、アプリケーションにこれら2つを同梱する必要がありません。そのため、サイズが小さくなります。

TauriのGitHubで示されているElectronとの比較表によると、Linux版のインストールサイズはElectronが52.1MBであるのに対し、Tauriは3.1MBで済むとされています。

【参考】:GitHub - tauri-apps/tauri: Build smaller, faster, and more secure desktop applications with a web frontend.

Node.jsとは?JavaScriptとの違いや使い所を解説

Tauriは効率的でパフォーマンスが高い

Tauriはメモリの消費量も少なく、Linux版ではElectronのメモリ消費量が462MB、Tauriは180MBです。また、起動時間もElectronが0.80秒、Tauriは0.39秒です。

また、TauriのブログではTauriの高パフォーマンスが環境に良い影響を与えると紹介しています。Tauriで作成されるアプリは無駄がなく高性能であるため、電力・ストレージのスペース・天然資源の消費が削減されるとし、アプリサイズが環境に与える影響に関する比較表を公開しています。

【参考】:Tauri 1.0 Release | Tauri Apps

Tauriは安全性が高い

Tauriを使うと、サーバーを使用してバックエンドと通信することなく、Web技術を利用したアプリケーションを構築することができます。そのため、一般的なWebアプリと比べてTCPポートや外部プロセスで通信を盗聴することができません。

また、Rustが持つメモリの安全性と速度は、従来型の攻撃を回避するのに役立ちます。また、開放したメモリに対してその脆弱性を突き、再びアクセス・実行することで悪用する「Use After Free」の脅威にさらされることがないとしています。

【参考】:Security | Tauri Apps/no-server-required 【参考】:Security | Tauri Apps/language-features-of-rust

WebView側の脆弱性対策が不要

もしもフレームワークがChromiumを組み込んでいると、Chromiumに何らかの脆弱性が見つかった場合、その脆弱性が修正されるのを待ってフレームワークも改修し、パッチを配布する必要があります。

しかし、TauriはChromiumなどのブラウザを組み込んでいないため、ブラウザの脆弱性に関する対策を行う必要がありません。アプリが使用するOSのWebView側で対策が行われれば、それで終了です。

TauriでWebベースデスクトップアプリを構築しよう

img_tauriver1_05

ここまで、Tauriの特徴や使用するメリット、Electronとの違いについて解説してきました。大手企業にも採用されているElectronの優れた基本的な特徴を備えながら、さらに軽量化や安全性の向上を目指したTauriは、バージョン1.0に到達したことで、今後さらに注目を集めることは間違いありません。

まだ使ったことがない方は、ぜひ1度試してみましょう。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT