Tauri
From Wikipedia, the free encyclopedia
|
| |
| 作者 | Daniel Thompson-Yvetot, Lucas Nogueira |
|---|---|
| 初版 | 2020年6月19日 |
| 最新版 |
Tauri v2
/ 2024年10月2日 |
| リポジトリ |
github |
| プログラミング 言語 | Rust、JavaScript |
| 対応OS | Linux, macOS, Windows, Android, iOS |
| ライセンス | MITライセンス, Apache License 2.0 |
| 公式サイト |
tauri |
Tauriはクロスプラットフォーム対応のデスクトップ/モバイルアプリケーション開発用OSS(オープンソースソフトウェア)フレームワークである。Webフロントエンドの技術を利用して、Linux、macOS、Windows、Android、iOS等のOSを対象とするアプリケーションの開発を可能にしている。アプリケーションはバックエンドをRust、フロントエンドをJavaScript等で記述し、tao、wry等のレンダリングライブラリを用いてWebView上で実行する[1][2]。似た機能を持つElectronのような既存のフレームワークの、より軽量な代替品となることを目標にしている[3][4]。
Tauriはオランダの非営利団体(non-profit Commons Conservancy)であるTauri Foundationによって運営されている[5]。2025年現在、MITライセンスとApache License(2.0)の下でライセンスされ配布されている。
2020年6月、Tauri 1.0がリリース。
2024年2月、iOSとAndroidのモバイル向けのサポートも含むTauri v2 Betaがリリース[6]。
2024年10月、Tauri v2の安定版がリリース[7]。
フロントエンド
Tauriのアーキテクチャの中心となるのは、ランタイム、マクロ、API等の様々な機能を管理するTauriクレートなどのコンポーネントである。ツールキットには、モジュールバンドラ、CLIインターフェイス、scaffoldなどの、開発やデプロイに必要となるツールが含まれている。taoによるウィンドウの作成と、wryによるWebViewレンダリングを用いて、macOS、Linux、Windows等のOSへのクロスプラットフォーム開発をサポートしている。
Tauriは、パフォーマンスの高さ、型安全、メモリ安全性などを売りとしているRustで開発されている。フロントエンドとバックエンドは異なるプロセスで実行され、プロセス間通信により情報をやり取りしている[8]。セキュリティ機構として、有効にするAPIの選別や[9][10]、信頼できないスクリプトによるバックエンドへのアクセスを防ぐアイソレーションパターンなどの機能も実現されている[11][12]。
フロントエンドのレンダリングはブラウザと同じように行われるため、さまざまなWeb用のフロントエンドフレームワークを使用できる[13]。最も標準的にはJavaScriptが開発言語として使用されるが、TypeScriptにも対応しており、またRustを使ってフロントエンドを記述することもできる。JavaScriptやTypeScriptを使用する場合、フレームワークはViteが最も標準的に使われる。Tauriは公式的にはViteの使用を推奨している[13]。
Electronでは作成したアプリはレンダリングのためにChromiumを内蔵しているのに対し、TauriはOSに組み込まれたWebViewのようなブラウザレンダリングエンジンを利用してアプリのレンダリングを行っている[14]。このためアプリ開発者は最新のChromiumの機能を使うことができないが、代わりに実行バイナリの大きさが非常に小さくなる、パフォーマンスが向上する、開発者が何もしなくてもセキュリティアップデートが自動的に反映されるためセキュリティ面で堅固になるなどの利点がある[1]。