Tauri
Tauri 适合放在“想做桌面端,但又不太想把一整套浏览器引擎都打进安装包”的那条线上看。它和 Electron 一样可以用 Web 技术写界面,但底层路线完全不同。
如果 Electron 的思路是“自己把 Chromium 带进去”,Tauri 的思路更像是“尽量借用系统已有的 WebView,再把系统能力和安全边界收紧”。
一句话先讲清楚
Tauri 是一个用 Web 前端加 Rust 后端来构建桌面端和移动端应用的框架。
官方 What is Tauri? 页面给出的说法很直接:
- 可以接入任何能编译成 HTML、JavaScript、CSS 的前端框架
- 后端逻辑可以用 Rust,也能扩展到 Swift、Kotlin 等语言
- 面向主流桌面和移动平台
这几个点基本决定了它的气质:
- 前端层很自由
- 后端能力很强
- 安全边界抓得比较紧
- 体积通常比 Electron 小很多
适合什么场景
- 希望继续用现有前端技术栈做桌面端
- 对安装包体积和资源占用比较敏感
- 需要系统能力,但希望权限和暴露面更可控
- 团队愿意接受一点 Rust 学习成本
不太适合什么场景
- 团队完全不想碰 Rust
- 更重视桌面生态成熟度和历史资料积累
- 项目需要非常多的现成桌面端生态方案,且希望“开箱就有”
Tauri 的核心结构
可以先把它理解成三层:
- 前端层:React、Vue、Svelte、Solid 等都可以
- Tauri 核心层:窗口、事件、命令、插件、权限体系
- Rust 系统层:真正的本地逻辑和系统调用
官方文档里对这点说得很明确:几乎任何前端框架都能和 Tauri 兼容,前端与 Rust 之间的绑定主要通过 invoke 来完成。