Tauri简介 #

一、什么是Tauri #

Tauri 是一个使用 Web 技术构建跨平台桌面应用的框架。它使用 Rust 作为后端语言,使用系统自带的 WebView 作为渲染引擎,让你可以用熟悉的前端技术开发高性能、小体积的桌面应用。

1.1 核心定位 #

text
Tauri = Rust 后端 + 系统 WebView + 前端框架

Tauri 的核心组成:

  • Rust 后端:提供高性能、内存安全的后端逻辑
  • 系统 WebView:使用操作系统自带的渲染引擎,无需打包 Chromium
  • 前端框架:支持 React、Vue、Svelte 等主流框架

1.2 核心特点 #

特点 说明
超小体积 打包后应用仅 3-10MB
低内存占用 使用系统 WebView,内存占用极低
高安全性 Rust 内存安全 + 细粒度权限控制
高性能 Rust 后端,接近原生性能
跨平台 支持 Windows、macOS、Linux
现代化 支持最新 Web 技术标准

二、Tauri架构 #

2.1 架构图 #

text
┌─────────────────────────────────────────────────────┐
│                    Tauri 应用                        │
├─────────────────────────────────────────────────────┤
│                                                     │
│  ┌─────────────┐              ┌─────────────┐      │
│  │  Rust 后端   │    IPC      │  WebView    │      │
│  │  (Core)     │◄────────────►│ (Frontend)  │      │
│  │             │   通信       │             │      │
│  │  Rust       │              │  HTML/CSS   │      │
│  │  环境       │              │  JavaScript │      │
│  └─────────────┘              └─────────────┘      │
│        │                             │             │
│        ▼                             ▼             │
│  ┌─────────────┐              ┌─────────────┐      │
│  │  系统 API   │              │   Web 页面   │      │
│  │  文件系统   │              │   前端框架   │      │
│  │  原生功能   │              │   UI 组件    │      │
│  └─────────────┘              └─────────────┘      │
│                                                     │
└─────────────────────────────────────────────────────┘

2.2 各平台 WebView #

平台 WebView 引擎 说明
Windows WebView2 基于 Chromium,Windows 10/11 内置
macOS WKWebView 基于 WebKit,macOS 原生支持
Linux WebKitGTK 基于 WebKit,需要安装依赖

2.3 通信机制 #

rust
// Rust 后端定义命令
#[tauri::command]
fn greet(name: &str) -> String {
    format!("Hello, {}!", name)
}
javascript
// 前端调用命令
import { invoke } from '@tauri-apps/api/core';

const result = await invoke('greet', { name: 'World' });
console.log(result); // "Hello, World!"

三、发展历史 #

3.1 时间线 #

年份 事件
2019 Tauri 项目启动
2020 发布 1.0 Beta 版本
2022 发布 1.0 正式版
2024 发布 2.0 版本

3.2 版本特性 #

text
Tauri 1.x
├── 基础窗口管理
├── 命令系统
├── 插件系统
└── 自动更新

Tauri 2.x
├── 增强的权限系统
├── 多窗口改进
├── 移动端支持(iOS/Android)
├── 更好的插件生态
└── 性能优化

四、应用场景 #

4.1 适合的场景 #

开发工具

text
代码编辑器、IDE 插件、终端工具、Git 客户端

效率工具

text
笔记应用、待办事项、时间追踪、剪贴板管理

系统工具

text
文件管理器、系统监控、备份工具、配置管理

媒体工具

text
音乐播放器、视频播放器、图片浏览器

4.2 知名应用案例 #

应用 类型 说明
Clippy 效率工具 跨平台剪贴板管理器
AppFlowy 效率工具 开源 Notion 替代品
PingCAP 开发工具 数据库管理工具
Greenshot 效率工具 截图工具
Pake 开发工具 网页打包为桌面应用

五、与其他技术对比 #

5.1 Tauri vs Electron #

方面 Tauri Electron
渲染引擎 系统 WebView Chromium
后端语言 Rust Node.js
包体积 小(~3-10MB) 大(~150MB)
内存占用
启动速度 较慢
学习曲线 较陡(Rust) 平缓
生态成熟度 发展中 成熟
安全性

5.2 Tauri vs 原生开发 #

方面 Tauri 原生开发
开发效率
学习曲线 中等 陡峭
性能 接近原生 最高
包体积 最小
跨平台 优秀 需要分别开发
UI 一致性 依赖 WebView 原生风格

5.3 Tauri vs Flutter #

方面 Tauri Flutter
技术栈 Web + Rust Dart
UI 一致性 依赖系统 自绘引擎
性能
桌面支持 成熟 发展中
移动端支持 2.x 支持 成熟
学习曲线 中等 中等

六、优缺点分析 #

6.1 优点 #

1. 极小的应用体积

text
Tauri 应用打包后通常只有 3-10MB
相比 Electron 动辄 150MB+,优势明显

2. 低内存占用

text
使用系统 WebView,无需打包渲染引擎
内存占用通常只有 Electron 的 1/3 到 1/2

3. 高安全性

rust
// 细粒度权限控制
"permissions": [
    "core:default",
    "shell:allow-open",
    "dialog:allow-open"
]

4. 高性能后端

rust
// Rust 后端,接近原生性能
#[tauri::command]
fn heavy_computation(data: Vec<u8>) -> Result<Data> {
    // 高性能计算
    Ok(process_data(data))
}

6.2 缺点 #

缺点 说明 解决方案
Rust 学习曲线 后端需要 Rust 知识 学习 Rust 基础,或使用现有插件
WebView 差异 不同平台 WebView 有差异 使用 Polyfill 或降级处理
生态相对较小 相比 Electron 插件较少 社区快速发展中
调试复杂 前后端分离调试 使用 Tauri DevTools

七、技术栈组成 #

7.1 核心技术 #

text
Tauri 应用技术栈
├── 前端技术
│   ├── HTML5        页面结构
│   ├── CSS3         样式设计
│   ├── JavaScript   交互逻辑
│   └── 前端框架     React/Vue/Svelte
├── Rust 后端
│   ├── tauri        核心库
│   ├── serde        序列化
│   ├── tokio        异步运行时
│   └── 原生 crates  Rust 生态
└── Tauri API
    ├── invoke       命令调用
    ├── window       窗口管理
    ├── dialog       对话框
    ├── fs           文件系统
    ├── shell        Shell 命令
    └── http         HTTP 请求

7.2 常用插件 #

插件 用途
tauri-plugin-shell 执行 Shell 命令
tauri-plugin-fs 文件系统操作
tauri-plugin-dialog 系统对话框
tauri-plugin-notification 系统通知
tauri-plugin-store 持久化存储
tauri-plugin-updater 自动更新
tauri-plugin-sql 数据库支持

八、学习路线 #

8.1 学习路径 #

text
基础阶段
├── Web 前端基础
├── 前端框架(React/Vue/Svelte)
├── Rust 基础语法
└── Tauri 基础 API

进阶阶段
├── 命令系统
├── 窗口管理
├── 状态管理
└── 事件系统

高级阶段
├── 插件开发
├── 原生模块
├── 性能优化
└── 打包发布

8.2 前置知识要求 #

知识 要求程度
JavaScript/TypeScript 熟练
HTML/CSS 基础
前端框架 基础
Rust 基础(后端开发需要)
命令行操作 基础

九、总结 #

9.1 核心要点 #

要点 说明
定义 使用 Web 技术构建跨平台桌面应用
核心 Rust 后端 + 系统 WebView
优势 小体积、低内存、高安全、高性能
架构 前后端分离,IPC 通信

9.2 下一步 #

现在你已经了解了 Tauri 的基本概念,接下来让我们学习 环境搭建,搭建你的 Tauri 开发环境!

最后更新:2026-03-28