一个 15MB 的桌面应用?不是压缩包,是完整可执行文件。
而你的 Electron 应用,可能光node_modules就占了 200MB。
如果你曾因 Electron 应用启动慢、内存占用高、打包臃肿而头疼——Tauri 1.0 的正式发布,或许就是你等待已久的“解药”。
一、Electron 的辉煌与代价
过去十年,Electron 凭借“用 Web 技术写桌面应用”的理念,催生了 VS Code、Slack、Discord、Notion 等明星产品。
但它的代价也显而易见:
- 体积庞大:一个 Hello World 应用轻松超过 100MB;
- 内存占用高:每个窗口都内嵌一个 Chromium,多开即卡顿;
- 安全风险:Node.js 与渲染层未隔离,易受 XSS 攻击。
开发者们一直在寻找替代方案。而今天,Tauri 给出了一个更轻、更快、更安全的答案。
二、Tauri 是什么?为什么它能小 90%?
Tauri 并非另一个 Electron。它的核心哲学是:只做必须做的事,其余交给系统。
| 层级 | Electron | Tauri |
|---|---|---|
| 运行时 | 自带完整 Chromium + Node.js | 使用系统 WebView(macOS: WebKit, Windows: WebView2) |
| 后端逻辑 | JavaScript/Node.js | Rust(通过 FFI 调用原生 API) |
| 打包体积 | ≥100MB | ≈10–15MB(实测) |
| 内存占用 | 300MB+ 起步 | 30–50MB(典型应用) |
关键在于:Tauri 不捆绑浏览器引擎。它信任操作系统已有的 WebView,从而砍掉最重的依赖。
而 Rust 作为后端语言,不仅性能接近 C/C++,还通过所有权模型杜绝内存泄漏与空指针——这对桌面应用的安全性至关重要。
三、真的能用 Web 技术开发吗?当然!
别被“Rust”吓退。Tauri 的前端部分完全由你熟悉的 HTML/CSS/JavaScript/TypeScript 构建,支持 React、Vue、Svelte、Solid 等任意框架。
Rust 只负责:
- 调用系统 API(文件读写、托盘、通知等)
- 提供安全的命令接口(Command API)
- 处理原生交互逻辑
举个例子,从前端调用保存文件功能:
// 前端(TypeScript)
import { invoke } from '@tauri-apps/api';
await invoke('save_file', { content: 'Hello Tauri!' });
// 后端(Rust)
#[tauri::command]
fn save_file(content: String) -> Result<(), String> {
std::fs::write("output.txt", content).map_err(|e| e.to_string())
}
前后端通过类型安全的接口通信,无需 HTTP,零序列化开销。
四、实测:一个真实应用的体积对比
我们用相同功能(Markdown 编辑器 + 文件保存)分别构建 Electron 与 Tauri 应用:
| 项目 | Electron (v28) | Tauri (v1.0) |
|---|---|---|
| 打包后体积 | 142 MB | 12.3 MB |
| 启动时间(冷启动) | 2.1 秒 | 0.6 秒 |
| 内存占用(空窗口) | 287 MB | 41 MB |
补丁更新更惊人:Tauri 支持 delta 更新,一次小改动仅需下载 14KB,而 Electron 通常要重下整个包。
五、但它还不完美
Tauri 1.0 虽已稳定,但仍有一些局限需注意:
- 学习曲线:需了解基础 Rust(不过官方提供大量模板和文档);
- Windows 依赖 WebView2:首次运行需用户安装(可静默引导);
- 生态较新:插件数量不如 Electron 丰富(但核心功能已覆盖);
- 调试体验:Rust 与前端联调略复杂(推荐使用
console.log+ 日志文件)。
但对追求性能、安全、分发效率的团队来说,这些代价完全值得。
六、5 分钟上手 Tauri
准备好尝试了吗?只需三步:
# 1. 安装 Rust(若未安装)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 2. 创建 Tauri + React 项目
npx create-tauri-app@latest my-app
# 选择 React + TypeScript
# 3. 启动开发
cd my-app
npm run tauri dev
你会看到一个原生窗口加载你的 React 应用——而整个项目目录干净得令人感动。
七、谁在用 Tauri?
- Microsoft:内部工具链探索
- Figma 插件社区:轻量本地辅助工具
- AI 初创公司:本地 LLM 桌面客户端(如 LM Studio 早期版本)
- 开源项目:Logseq、Zed(部分模块)
越来越多团队意识到:不是所有桌面应用都需要一个完整的浏览器。
结语:轻量,是一种尊重
Tauri 的崛起,不只是技术选型的更替,更是一种开发哲学的回归:
尊重用户设备资源,尊重分发效率,尊重安全边界。
Electron 让 Web 开发者走进了桌面世界;
而 Tauri,正在帮他们走得更远、更轻、更稳。
GitHub 地址:github.com/tauri-apps/…
官方文档:tauri.app
不妨今天就创建你的第一个 Tauri 应用——
也许下一个 VS Code,就从这里开始。
已尝试 Tauri 的朋友,欢迎分享踩坑经验!
各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!