用途:用于创建、审查或调试 Tauri 2 桌面应用,把特权逻辑放在 Rust 侧,仅向前端暴露最小接口。
主要能力:涵盖 Tauri 2 运行时、窗口、IPC 与插件;src-tauri 中的 commands、state、capabilities;前端可选用 Web 技术栈;插件如 FS、dialog、shell、http 需显式权限。要求新项目不使用 Tauri 1 的旧 allowlist 模式。
用法要点:src-tauri/src/lib.rs 中通过 #[cfg_attr] run、插件注册与 invoke_handler 装配;commands 按领域拆分,逻辑放入可测试的 Rust 模块;共享状态用 tauri::State 配合 Mutex/RwLock;前端仅通过 invoke 和 events 通信,使用 @tauri-apps/api 的 invoke,调用前检测 Tauri 运行时。示例命令:# [tauri::command] fn greet(name: String) -> Result<String, String>,并在 lib.rs 中用 tauri::Builder::default().plugin(...).invoke_handler(tauri::generate_handler![greet]).run(...)。命令返回可序列化 Result,错误对 UI 安全;输入在 Rust 校验;I/O 用异步命令;推送用 events,请求响应用 commands。
权限与安全:在 capabilities/ 按窗口或 label 声明能力,遵循最小权限,只开放必要路径与命令;每次触及磁盘、网络或进程都复查 capabilities;不暴露通用 shell/FS command,规范化并校验路径防穿越;前端视为不可信,权限过宽时 webview XSS 可导致 RCE;更新使用带签名的官方 updater 机制;密钥与签名不入仓库。
配置与构建:标识符、窗口与 security 在 tauri.conf.json 和 capabilities 文件;开发用 tauri dev,生产用 tauri build 并在目标系统测试安装产物;跨平台路径与文件系统用 Tauri API。
限制:资料未提供具体收费、价格、支持的平台版本细节,暂未提供。避免反模式:把 Electron/Node 思路搬到 Rust、保留宽松 capabilities、接受 UI 任意路径或命令、同步阻塞 UI、混用 v1 与 v2 模式、在 Rust 或 webview 记录令牌与 PII。