什么是 Tauri
Tauri 是一套使用 Rust 开发后端、前端网页技术(HTML/JS/TS/Vue/React/Svelte)渲染界面的跨平台桌面应用开发框架。
对标 Electron,但架构完全不同:
- Electron :内置完整 Chromium + Node.js,安装包动辄几十~上百 MB,内存占用高
- Tauri :复用操作系统自带 WebView
- Windows:WebView2(Edge 内核)
- macOS:WebKit(Safari 内核)
- Linux:WebKitGTK
优势:安装包通常 5--20MB,内存占用远低于 Electron,安全性更强。
语言分工:
- Rust(src-tauri) :程序主进程、文件读写、网络、硬件操作、业务逻辑、权限管控;高性能、内存安全。
- 前端(src) :只负责 UI 界面,默认没有 Node.js 环境 ,不能直接调用Node API。
二、核心优缺点
✅ 优点
- 体积极小、内存占用低;
- Rust 保证内存安全,不容易崩溃;
- 跨平台:一键打包Windows /macOS/ Linux;
- 精细权限模型:可以限制前端能否访问文件系统、网络;
- 支持自定义窗口、托盘、全局快捷键、弹窗、文件对话框;
- 支持生成**
.exe、.dmg、.deb、.rpm安装包,还能做便携单文件程序**。
❌ 缺点
- 没有内置 Node,很多前端工具链不能直接用;
- Linux 依赖系统 WebKit,部分极简系统需要额外安装依赖;
- WebView 版本由系统决定,旧系统 WebView 浏览器特性会受限;
- 图形渲染重度应用(大型 2D/3D 游戏)不如原生 GUI 框架;
- Windows7 不自带 WebView2,需要额外分发运行时。
核心通信机制(最重要)
前端和 Rust 互相隔离,不能直接访问对方变量,靠两套机制通信。
Rust 语言
一、基础定位
Rust :Mozilla 发起、现由 Rust 基金会维护的编译型系统编程语言。
标语:安全、并发、高性能。
对标:C / C++;
差异化核心:无 GC 垃圾回收,却保证内存安全,杜绝野指针、内存泄漏、缓冲区溢出、数据竞争。
关键特点一览
✅ 所有权(Ownership) 核心机制(Rust 灵魂)
✅ 借用、生命周期、借用检查,编译期拦截内存错误
✅ 零成本抽象:高层语法,运行时无额外开销
✅ 天然安全并发,从语言层面防止数据竞争
✅ 静态强类型、类型推导、严格编译检查
✅ 跨平台原生编译,生成独立二进制文件
✅ 现代化工具链:cargo 包管理器 + 构建工具
✅ 丰富生态:系统开发、Web、嵌入式、桌面、区块链
❌ 缺点
-
学习曲线陡峭:所有权、生命周期概念需要适应
-
编译速度相比 Go、C 偏慢
-
部分场景模板代码偏多
-
Tauri 不是语言,是框架
-
Tauri 后端逻辑使用 Rust 编写
-
Rust 负责:文件操作、进程调用、网络、窗口管理、权限控制、高性能任务
-
前端(JS/TS/Vue/React)只负责界面渲染
-
前后端隔离,通过
invoke / event通信