使用 Tauri 框架構建跨平臺應用
Tauri 是一個基于 Rust 的輕量級框架,可替代 Electron,用于構建高性能、低資源占用的桌面應用。其核心優勢在于利用系統原生 WebView 而非捆綁 Chromium,顯著減小應用體積。
安裝 Tauri 需要先配置 Rust 環境:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
創建新項目:
npm create tauri-app@latest
項目結構包括 src-tauri
(Rust 后端)和前端代碼目錄(如 React/Vue)。
配置前端與 Rust 交互
Tauri 允許前端調用 Rust 函數實現高性能操作。在 src-tauri/src/main.rs
中定義命令:
#[tauri::command]
fn greet(name: &str) -> String {format!("Hello, {}!", name)
}fn main() {tauri::Builder::default().invoke_handler(tauri::generate_handler![greet]).run(tauri::generate_context!()).expect("error while running app");
}
前端調用示例(JavaScript):
import { invoke } from '@tauri-apps/api';
invoke('greet', { name: 'World' }).then(console.log);
打包與平臺適配
Tauri 支持 Windows、macOS 和 Linux。生成安裝包:
npm run tauri build
配置文件 tauri.conf.json
可自定義應用圖標、權限等:
{"build": {"distDir": "../dist","devPath": "http://localhost:3000"},"tauri": {"bundle": {"targets": ["msi", "app", "deb"]}}
}
集成系統原生功能
通過 Tauri 的 API 訪問文件系統、通知等:
use tauri::api::dialog::message;
#[tauri::command]
fn show_alert(title: &str, content: &str) {message(title, content);
}
前端調用:
invoke('show_alert', { title: '提示', content: '操作成功' });
性能優化技巧
- 減小體積:禁用未使用的 Tauri 模塊(如
tauri::updater
)。 - 代碼分割:動態加載前端資源。
- Rust 優化:使用
#[inline]
或lto = true
(在Cargo.toml
中)。
[profile.release]
lto = true
codegen-units = 1