SuperAPI AI 工具集

tauri-desktop

编程与开发

查看项目

更新于 10-16 11:08

技能介绍

用途

本技能用于指导构建基于 Tauri 2.0 的轻量级、安全的桌面(以及移动)应用,采用 Rust 作为后端、Web 技术作为前端。适合在需要控制安装包体积、内存占用并强化安全边界的跨平台应用场景中使用。

主要能力与特点

资料提供了 Tauri 与 Electron 的对比表:

特性 Tauri Electron
包体积 2-10 MB 80-150 MB
内存占用 30-80 MB 100-300 MB
后端语言 Rust Node.js
安全模型 基于能力的权限 完整 Node.js 访问
移动支持 支持(Tauri 2.0) 不支持
自动更新 内置 electron-updater

项目结构

资料给出了典型目录布局:

project/
├── src/                          # 前端(任意 Web 框架)
│   ├── main.ts
│   ├── App.tsx                   # React/Vue/Svelte/vanilla
│   └── styles.css
├── src-tauri/                    # Rust 后端
│   ├── src/
│   │   ├── main.rs              # 入口点
│   │   ├── lib.rs               # 命令与初始化
│   │   └── commands/            # IPC 命令模块
│   │       ├── mod.rs
│   │       └── files.rs
│   ├── capabilities/            # 安全权限
│   │   └── default.json
│   ├── icons/                   # 应用图标
│   ├── Cargo.toml               # Rust 依赖
│   └── tauri.conf.json          # Tauri 配置
├── package.json
├── vite.config.ts               # 前端打包器
└── tsconfig.json

使用方式:IPC 命令

Rust 端通过 #[tauri::command] 定义命令,并使用 tauri::generate_handler! 注册。示例包括同步的 greet、异步的 read_file,以及使用 AppHandle 与 app.path().app_config_dir() 写入配置的 save_settings。

前端通过 @tauri-apps/api/core 的 invoke 调用,如 invoke<string>('greet', { name: 'World' })、invoke<string>('read_file', { path: '/tmp/test.txt' }) 与 invoke('save_settings', { settings: {...} })。

安全模型

通过 src-tauri/capabilities/default.json 配置权限,关键原则包括:默认允许列表(前端仅能访问显式许可的 API)、文件系统访问限定目录范围、不允许任意 shell 访问(命令必须预先在 Rust 中定义)、CSP 自动设置。示例配置了 core:default、dialog:default、fs:default,并将读写文本文件限制在 $APPDATA/** 范围内。

插件与自动更新

资料列出常用插件依赖:tauri-plugin-dialog、tauri-plugin-fs、tauri-plugin-shell、tauri-plugin-store、tauri-plugin-updater、tauri-plugin-notification,并给出在 Builder 中初始化插件的方式。自动更新在 tauri.conf.json 中配置 pubkey 与 endpoints,前端可调用 @tauri-apps/plugin-updater 的 check() 后执行 downloadAndInstall() 与 relaunch()。

构建与分发

开发与构建命令:npm run tauri dev、npm run tauri build;指定目标如 x86_64-pc-windows-msvc、aarch64-apple-darwin、x86_64-unknown-linux-gnu;移动端使用 npm run tauri android dev 与 npm run tauri ios dev。分发格式:macOS 为 .dmg、.app;Windows 为 .msi、.exe(NSIS);Linux 为 .deb、.rpm、.AppImage;Android 为 .apk、.aab;iOS 为 .ipa。

适用场景与开发提示

适用于需要轻量、安全、原生性能与 Web 灵活性的桌面或移动应用。资料给出提示:用 window.__TAURI__ 检测 Tauri 环境、用 Tauri 的 State 管理 Rust 端状态、用 @tauri-apps/plugin-dialog 替代浏览器文件输入、在 tauri.conf.json 配置系统托盘、通过 WebviewWindow::new() 或 WebviewWindow.create() 创建多窗口。

限制

资料未提供收费、价格信息,未提供具体性能实测数据,未提供完整插件或 API 清单,未提供移动端平台限制的细节说明。相关资源列举了 agent-rust-expert、agent-desktop-developer 等技能及 Rust 栈指南路径。