关于 tauri
这项基于文档的技能面向使用 Rust 和 WebView 开发 Tauri 应用的开发者,涵盖项目配置、插件、调试、安全、移动开发与发布流程。
主要功能
- 01项目初始化与配置
- 02Rust 与 WebView 的 IPC 指引
- 03原生及移动插件开发指引
- 04调试与 DevTools 参考
- 05安全与权限实践
- 06代码签名和发布指引
适用场景
- 01启动 Tauri 应用项目
- 02实现前端到 Rust 的命令调用
- 03开发 Android 或 iOS 插件
- 04准备已签名的应用发布版本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ microck/ ordinary-claude-skills --skill tauri安装后在 Claude Code 中输入/tauri确认已加载。
附带文件metadata.json
详细介绍
Tauri 技能
基于官方文档生成的 Tauri 开发全面指南。
何时使用此技能
遇到以下情况时,应使用此技能:
- 使用 Rust + WebView 构建跨平台桌面应用
- 实现原生系统集成(文件系统、通知、系统托盘)
- 设置 Tauri 项目结构和配置
- 在 VS Code 或 Neovim 中调试 Tauri 应用
- 配置 Windows/macOS/Linux 代码签名以进行分发
- 使用 Tauri 开发移动应用(Android/iOS)
- 创建用于自定义原生功能的 Tauri 插件
- 实现前端与后端之间的 IPC(进程间通信)
- 优化 Tauri 应用的安全性和权限
- 为 Tauri 应用发布设置 CI/CD 流水线
核心概念
多进程架构
Tauri 采用 核心进程(Rust)和 WebView 进程(HTML/CSS/JS)架构:
- 核心进程:管理窗口、系统托盘、IPC 路由,并拥有完整的操作系统访问权限
- WebView 进程:使用系统 WebView 渲染 UI(不捆绑浏览器!)
- 最小权限原则:每个进程仅拥有所需的最少权限
进程间通信(IPC)
两种 IPC 基元:
- 事件:单向、即发即弃的消息(核心进程 → WebView 和 WebView → 核心进程)
- 命令:使用
invoke()API 的请求-响应模式(仅限 WebView → 核心进程)
为什么选择 Tauri?
- 二进制文件体积小:使用操作系统 WebView(Microsoft Edge WebView2/WKWebView/webkitgtk)
- 安全优先:消息传递架构可防止直接访问函数
- 多平台:桌面端(Windows/macOS/Linux)+ 移动端(Android/iOS)
快速参考
1. 项目设置 - Cargo.toml
[build-dependencies]
tauri-build = "2.0.0"
[dependencies]
tauri = { version = "2.0.0" }
2. Windows 代码签名配置
{
"tauri": {
"bundle": {
"windows": {
"certificateThumbprint": "A1B1A2B2A3B3A4B4A5B5A6B6A7B7A8B8A9B9A0B0",
"digestAlgorithm": "sha256",
"timestampUrl": "http://timestamp.comodoca.com"
}
}
}
}
3. VS Code 调试 - launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Tauri Development Debug",
"cargo": {
"args": [
"build",
"--manifest-path=./src-tauri/Cargo.toml",
"--no-default-features"
]
},
"preLaunchTask": "ui:dev"
}
]
}
4. Rust 状态管理
let data = app.state::<AppData>();
5. GitHub Actions - 发布工作流
name: 'publish'
on:
push:
tags:
- 'app-v*'
6. Trunk 配置(Rust 前端)
# Trunk.toml
[watch]
ignore = ["./src-tauri"]
[serve]
ws_protocol = "ws"
7. Azure Key Vault 签名(relic.conf)
[server.azurekv]
url = "https://<KEY_VAULT_NAME>.vault.azure.net/certificates/<CERTIFICATE_NAME>"
8. 自定义签名命令(tauri.conf.json)
{
"tauri": {
"bundle": {
"windows": {
"signCommand": "relic sign -c relic.conf -f -o \"%1\""
}
}
}
}
9. 以编程方式打开 DevTools
use tauri::Manager;
#[tauri::command]
fn open_devtools(window: tauri::Window) {
window.open_devtools();
}
10. 移动插件 - Android 命令
@Command
fun download(invoke: Invoke) {
val args = invoke.parseArgs(DownloadArgs::class.java)
// Command implementation
invoke.resolve()
}
参考文件
此技能包含全面的文档,分为 9 个类别:
core_concepts.md
包含: 7 个页面,涵盖基础架构
- 进程模型:多进程架构、核心进程与 WebView 进程、安全原则
- 进程间通信:事件和命令模式、消息传递
- 在 VS Code 中调试:设置
vscode-lldb、launch.json 配置、Windows 调试器 - Tauri 架构:生态系统概览(tauri-runtime、tauri-macros、tauri-utils、WRY、TAO)
使用时机:了解 Tauri 的设计理念、调试设置和架构决策
development.md
包含: 13 个页面,介绍开发工作流
- 在 Neovim 中调试:nvim-dap 设置、codelldb 配置、用于开发服务器的 overseer 插件
- CrabNebula DevTools:实时日志检查、性能跟踪、事件监控
- 调试:仅用于开发的代码模式、控制台日志记录、WebView 检查器、生产环境调试
- 移动插件开发:Android(Kotlin)和 iOS(Swift)插件创建、生命周期事件
使用时机:设置开发环境、调试策略、移动开发
distribution.md
包含: 8 个页面,介绍应用分发
- Windows 代码签名:OV 证书、Azure Key Vault、自定义签名命令、GitHub Actions
- Azure 代码签名:trusted-signing-cli 设置、环境变量、签名工作流
- 代码签名最佳实践:EV 与 OV 证书、SmartScreen 信誉、Microsoft Store
使用时机:准备应用发布、代码签名、CI/CD 流水线、生产构建
getting_started.md
包含: 快速入门指南和初始设置说明
- 项目初始化
- 第一个 Tauri 应用教程
- 配置基础知识
适用场景:启动新的 Tauri 项目、帮助新开发者熟悉项目
plugins.md
包含: 插件开发和集成指南
- 创建自定义插件
- 移动端插件模式(Android/iOS)
- 插件配置
- 生命周期事件(load、onNewIntent)
- 命令参数和解析
适用场景:为 Tauri 扩展原生功能、集成第三方库
reference.md
包含: API 参考和配置架构
- tauri.conf.json 结构
- 命令行界面选项
- 配置选项参考
适用场景:查找特定 API 方法、配置属性、CLI 标志
security.md
包含: 安全最佳实践和模式
- 内容安全策略(CSP)
- 安全 IPC 模式
- 权限管理
- WebView 安全
适用场景:加强应用安全、进行安全审计、实现安全功能
tutorials.md
包含: 分步实现指南
- 构建特定功能
- 集成示例
- 真实用例
适用场景:通过示例学习、实现常见模式
other.md
包含: 上述类别未涵盖的其他文档
- 高级主题
- 边缘情况
- 平台特定说明
适用场景:排查不常见的问题、实现平台特定功能
使用此技能
初学者
- 从这里开始: 阅读
getting_started.md,了解项目设置和基本概念 - 接着阅读:
core_concepts.md→ Process Model 和 IPC 部分 - 动手练习: 按照
development.md→ Debug in VS Code 设置调试 - 开始构建: 按照
tutorials.md中的教程操作
初学者常见问题:
- “如何创建 Tauri 应用?” →
getting_started.md - “什么是 Core Process?” →
core_concepts.md→ Process Model - “如何从 JavaScript 调用 Rust?” →
core_concepts.md→ IPC → Commands
中级开发者
- 重点阅读:
plugins.md,了解自定义原生功能 - 熟练掌握:
development.md中的调试和 DevTools - 深入探索:
reference.md中的 API 详情 - 实现:
core_concepts.md中的自定义 IPC 模式
中级开发者常见问题:
- “如何创建自定义插件?” →
plugins.md→ Plugin Development - “如何调试性能问题?” →
development.md→ CrabNebula DevTools - “有哪些可用的配置选项?” →
reference.md
高级用户
- 深入了解:
security.md中适用于生产环境的安全知识 - 优化:
plugins.md中的移动端开发模式 - 自动化:
distribution.md中的分发工作流 - 自定义:
other.md中的高级模式
高级用户常见问题:
- “如何为 Windows 设置代码签名?” →
distribution.md→ Windows Code Signing - “如何创建移动端插件?” →
development.md→ Mobile Plugin Development - “有哪些安全最佳实践?” →
security.md
导航提示
- 按主题搜索: 每个参考文件都包含目录
- 代码示例: 所有代码块都标注了语言
- 原始文档: 参考文件包含源文档的 URL
- 快速查找模式: 请先查看上方的 Quick Reference 部分
与 Claude 搭配使用
向 Claude 咨询 Tauri 相关问题时:
- 说明具体情况: 提及平台(Windows/macOS/Linux/Android/iOS)
- 提供上下文: 如有需要,请分享你的
tauri.conf.json - 参考分类: “查看 distribution.md 文件中的签名信息”
- 分享错误: 附上完整的错误消息和堆栈跟踪
资源
references/
从 Tauri 官方来源(https://tauri.app/)提取并整理的文档。这些文件包含:
- 详细说明:架构、模式、最佳实践
- 代码示例:标注语言(rust、json、toml、kotlin、swift)
- 来源链接:便于深入阅读的原始文档 URL
- 目录:快速浏览各文件内容
scripts/
用于常见自动化任务的辅助脚本:
- 构建脚本
- 测试工具
- 部署辅助工具
在此处添加项目专用的自定义自动化脚本
assets/
模板、样板代码和示例项目:
- 项目模板
- 配置示例
- 示例应用
在此处添加模板和样板代码
常见模式
创建 Tauri 命令
#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}!", name)
}
// In main.rs
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![greet])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
从前端调用命令
import { invoke } from '@tauri-apps/api/core';
const greeting = await invoke('greet', { name: 'World' });
console.log(greeting); // "Hello, World!"
触发事件
// From Rust
app.emit_all("event-name", Payload { message: "Hello".into() }).unwrap();
// Listening in JavaScript
import { listen } from '@tauri-apps/api/event';
const unlisten = await listen('event-name', (event) => {
console.log(event.payload.message);
});
调试快速提示
启用 Rust 回溯
# Linux/macOS
RUST_BACKTRACE=1 tauri dev
# Windows (PowerShell)
$env:RUST_BACKTRACE=1; tauri dev
创建调试构建
npm run tauri build -- --debug
以编程方式打开 DevTools
use tauri::Manager;
window.open_devtools();
window.close_devtools();
平台特定说明
Windows
- 使用 Microsoft Edge WebView2(在 Windows 11 上自动安装)
- 代码签名是获得 SmartScreen 信誉所必需的
- EV 证书可立即获得信任;OV 证书需要一段时间积累信誉
macOS
- 使用 WKWebView(macOS 原生组件)
- DevTools API 为私有 API(在生产环境中使用会导致 App Store 审核不通过)
- 使用 Apple Developer 证书进行代码签名
Linux
- 使用 webkitgtk(必须单独安装)
- 软件包格式:.deb、.rpm、.AppImage
Android
- 基于 Kotlin 的插件
- 集成 Activity 生命周期
- 需要 Android Studio
iOS
- 基于 Swift 的插件
- 使用 Swift Package Manager 管理依赖项
- 需要 Xcode
说明
- 此技能根据 Tauri 官方文档自动生成
- 所有代码示例均提取自官方来源
- 参考文件保留了结构和指向原始文档的链接
- 快速参考模式展示了真实场景中的用法
- 最后更新:2025 年 10 月
更新
要使用更新后的文档刷新此技能:
- 使用
configs/tauri.json重新运行抓取程序 - 技能将使用最新信息重新构建
- 增强过程会保留
scripts/和assets/中的自定义内容