リリース・改善中
Framework · 2022年公開
Tauri は Rust のコアと OS 標準の WebView で、小さく安全なデスクトップ・モバイルアプリを作るフレームワークです。画面は Web 技術で書きます。
Tauri は、HTML・CSS・JavaScript で作った画面と Rust で書いたコアを組み合わせ、Windows、macOS、Linux、Android、iOS 向けのアプリを作るオープンソースのフレームワークです。2022 年に最初の安定版が公開され、現在はデスクトップとモバイルの両方に対応しています。ブラウザーエンジンを同梱せず、OS が提供する WebView(Windows の WebView2、macOS の WKWebView、Linux の WebKitGTK など)を使うため、インストーラーが小さく、メモリ使用量も比較的少なく済みます。
Tauri は、Web 開発の経験を生かしてデスクトップアプリを作りたいが、アプリのサイズやセキュリティも気になるという場合に向いています。React、Vue、Svelte、Angular など静的ファイルとしてビルドできるフロントエンドなら何でも使え、ファイルシステムやシステムトレイといった OS に近い処理は Rust のコマンドと公式プラグインが担います。WebView 内のコードが使える機能は capability と permission によってウィンドウごとに明示的に許可する必要があるため、必要な権限だけを開く構成に自然となります。
始めるには、Rust と各 OS の WebView 開発ライブラリをインストールし、create-tauri-app でプロジェクトを作って開発モードで起動してみましょう。Rust に詳しくなくても、テンプレートの greet コマンドを書き換えるところから始められます。公式ドキュメントではコマンド、イベント、セキュリティモデル、配布の順に解説されており、下のガイドも同じ流れで要点をまとめています。
ブラウザーエンジンを同梱せず OS の WebView を使うため、インストーラーのサイズとメモリ使用量を小さく保てます。
ウィンドウ管理、ファイルアクセス、重い計算を Rust で処理し、高速でメモリ安全なバックエンドを得られます。
capability・permission・scope でウィンドウごとに使えるコマンドとパスを定め、それ以外は既定で拒否されます。
ひとつのコードベースから Windows、macOS、Linux のデスクトップアプリと Android・iOS アプリを作れます。
rustup で Rust をインストールします。Windows では Microsoft C++ Build Tools と WebView2、macOS では Xcode Command Line Tools、Linux では WebKitGTK などの開発ライブラリも必要です。Web フロントエンドを使う場合は Node.js も入れます。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shcreate-tauri-app がプロジェクト名、識別子、フロントエンドの言語、パッケージマネージャー、UI テンプレートを順に尋ね、プロジェクトを生成します。
npm create tauri-app@latest依存関係をインストールして開発モードで起動します。初回は Rust の依存関係をビルドするため数分かかりますが、以降はフロントエンドの変更がすぐに反映されます。
cd tauri-app && npm install && npm run tauri devsrc-tauri/src/lib.rs にはアプリの Rust コアが入っています。#[tauri::command] を付けた greet 関数は、フロントエンドから invoke("greet", { name }) で呼び出せるコマンドで、generate_handler! で登録されます。run 関数はアプリを組み立てて起動し、デスクトップでは main.rs がこの関数を呼びます。npm run tauri dev を実行するとアプリのウィンドウが開きます。
src-tauri/src/lib.rs
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {name}! You've been greeted from Rust!")
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
npm run tauri devインストールから Tauri の中心となる考え方まで、6 章で順を追って学びます。
Tauri について質問し、経験を共有し、意見を交わす場所です。
まだディスカッションはありません。最初の話題を始めましょう。
コメント 0件
ログイン · ログインするとコメントできます。
最初のコメントを書いてみましょう。