Tauri 1.0 正式发布:用 Rust 写前端,体积比 Electron 小 90%!

一个 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)
  • 处理原生交互逻辑

举个例子,从前端调用保存文件功能:

ts 复制代码
// 前端(TypeScript)
import { invoke } from '@tauri-apps/api';

await invoke('save_file', { content: 'Hello Tauri!' });
rust 复制代码
// 后端(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

准备好尝试了吗?只需三步:

bash 复制代码
# 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 的朋友,欢迎分享踩坑经验!


各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在知识的海洋里乘风破浪!

相关推荐
测试199813 小时前
2026最新软件测试面试八股文【附文档】
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
zmsofts13 小时前
java面试必问13:MyBatis 一级缓存、二级缓存:从原理到脏数据,一篇讲透
java·面试·mybatis
我叫黑大帅14 小时前
为什么map查找时间复杂度是O(1)?
后端·算法·面试
M ? A15 小时前
Vue 动态组件在 React 中,VuReact 会如何实现?
前端·javascript·vue.js·经验分享·react.js·面试·vureact
zzb158018 小时前
Fragment 生命周期深度图解:从 onAttach 到 onDetach 完整流程(面试必备)
android·java·面试·安卓
红星照耀华夏18 小时前
模拟面试系列-ClassLoader
面试·职场和发展
knight_9___19 小时前
Agent开发面试圣经8
面试·职场和发展
王二端茶倒水19 小时前
现在AI Agent 已经能够代替程序员的工作了,作为一个程序员的我该如何规划以后的职业,请认真思考后给我最靠谱可行的建议。
前端·后端·面试
极客沐森19 小时前
分页查询超亿级别的数据表缓慢,如何进行优化?
面试
KMDxiaozuanfeng21 小时前
卡梅德生物技术快报|SPR 技术应用|基于 SPR 亲和力的中药活性成分筛选系统实现与数据分析
科技·算法·面试·考试