用途:Tauri 用于构建跨平台桌面与移动应用,UI 采用 Web 技术、后端逻辑使用 Rust。它借助操作系统自带的 WebView 而非内置浏览器引擎,因此二进制体积更小、运行更快。适合需要系统级集成(托盘、通知、文件系统)、体积敏感或需要细粒度权限控制的应用;纯 Web 应用、重度依赖 Node.js API 的 Electron 应用,或团队无 Rust 维护能力的项目则不适合。
主要能力:通过 IPC 连接前端与 Rust 命令,并以基于能力的权限系统进行控制。支持创建项目(cargo create-tauri-app 或 pnpm create tauri-app)、用 #[tauri::command] 定义命令并在 generate_handler! 中注册、前端以 invoke('cmd_name', { arg: value }) 调用、使用 emit 与 listen 处理事件、以 app.manage 管理状态、用 WebviewWindowBuilder 管理窗口、用 TrayIconBuilder 创建系统托盘、通过 .plugin() 注册插件并配合 @tauri-apps/plugin-name,还支持 sidecar 二进制、自定义协议、自动更新与打包签名(cargo tauri build)。
安全与限制:命令需显式授权,权限在 src-tauri/capabilities/*.json 中定义并按窗口标签限定;自动更新要求所有平台具备有效代码签名。常见错误包括多次调用 generate_handler!、async 命令参数使用 &str、状态重复包 Arc、跨 .await 使用 std::sync::Mutex、sidecar 命名不符合 {name}-{target_triple}、误用 v1 的 SystemTray 等。资料未提供价格、平台支持范围及具体效果数据。