当前位置: 首页 > news >正文

Tauri 2.0 vs Electron:用 Rust 开发一个 5MB 大小的跨平台桌面应用,内存占用只有 1/10

🐘 前言:Electron 的“富贵病”

Electron 的原理很简单:把一个完整的 Chrome 浏览器和 Node.js 打包进你的应用里

  • 优点:前端极其舒服,API 统一,不用管浏览器兼容性。
  • 缺点
  1. 体积大:Hello World 也要 60MB+(因为带着 Chrome)。
  2. 内存泄露:每个窗口都是一个 Chrome 进程,内存杀手。
  3. 安全性:Node.js 在渲染进程的权限过大,容易被 XSS 攻击利用。

Tauri 的逻辑是:既然用户的电脑里已经有了浏览器(Windows 有 Edge/WebView2,macOS 有 Safari/WebKit,Linux 有 WebKitGTK),为什么我还要再带一个 Chrome?


⚔️ 一、 架构对决:为什么 Tauri 这么小?

架构原理图解 (Mermaid):

IPC 通信

系统调用

== 🏗️ Electron (大而全) ==

前端代码 JS/HTML

内置 Node.js 运行时

内置 Chromium 浏览器内核

== 🚀 Tauri (小而美) ==

前端代码 JS/HTML

Rust 后端 (替代 Node.js)

操作系统原生 WebView

核心差异:

  1. 渲染层:Tauri 使用系统自带的 WebView,不打包浏览器内核。
  2. 后端层:Tauri 使用Rust替代 Node.js。Rust 编译成二进制文件,无运行时开销,性能极高,内存极低。

📊 二、 性能实测数据

我们用 React 写一个同样的 Todo List 应用,分别用 Electron 和 Tauri 打包。

维度ElectronTauri胜出
安装包体积~85 MB~3 MB🏆 Tauri (小 30 倍)
启动时间~1.5 秒~0.4 秒🏆 Tauri
冷启动内存~180 MB~15 MB🏆 Tauri (少 10 倍)
后端语言JS/TS (Node)Rust🤝 看团队基因
兼容性完美 (自带 Chrome)有坑(依赖系统版本)🏆 Electron
移动端支持无 (需转 React Native)支持 (Tauri 2.0)🏆 Tauri

🦀 三、 Tauri 2.0 新特性:不仅是桌面,更是全平台

Tauri 1.0 只能做桌面端,而Tauri 2.0引入了重磅更新:支持 iOS 和 Android

这意味着,你写一套代码(React/Vue + Rust),可以同时打包出:

  • Windows (.exe)
  • macOS (.dmg)
  • Linux (.deb)
  • iOS (.ipa)
  • Android (.apk)

这直接对标了 Flutter 和 React Native,但保留了 Web 开发的灵活性和 Rust 的高性能。


💻 四、 实战:3 分钟创建一个 Tauri + React 项目

1. 环境准备
你需要安装 Rust (通过 rustup) 和 Node.js。

2. 初始化项目

npmcreate tauri-app@latest

按照提示选择:

  • Project name:my-tauri-app
  • Frontend flavor:React
  • Language:TypeScript

3. Rust 与前端的通信 (IPC)
Tauri 的黑科技在于极其简单的 IPC。我们写一个 Rust 函数,让前端调用。

  • 后端 (src-tauri/src/main.rs):
// 定义一个指令,供前端调用#[tauri::command]fngreet(name:&str)->String{format!("Hello, {}! You've been processed by Rust.",name)}fnmain(){tauri::Builder::default().invoke_handler(tauri::generate_handler![greet])// 注册指令.run(tauri::generate_context!()).expect("error while running tauri application");}
  • 前端 (src/App.tsx):
import{invoke}from"@tauri-apps/api/core";functionApp(){constcallRust=async()=>{// 调用 Rust 函数 'greet'constresponse=awaitinvoke("greet",{name:"Tauri User"});console.log(response);// 输出: Hello, Tauri User! ...alert(response);};return(<button onClick={callRust}>Call Rust Backend</button>);}

4. 运行与打包

npmrun tauri dev# 开发模式npmrun tauri build# 打包生产环境

打包完成后,你会发现src-tauri/target/release/下的安装包只有4MB左右!


⚠️ 五、 避坑指南:Tauri 并不是完美的

虽然 Tauri 很香,但在决定切换之前,你需要知道它的痛点:

  1. 浏览器兼容性碎片化
  • Electron 自带 Chrome,你可以肆无忌惮地用最新的 CSS Grid 或 Web API。
  • Tauri 依赖用户的系统。Windows 用户如果没装 WebView2(虽然 Win10/11 默认有),或者 macOS 用户还在用老版本 Safari,你的 CSS 可能会崩。你需要写 Polyfill。
  1. Rust 学习曲线
  • 如果你的应用只做简单的 CRUD,Rust 后端基本不用动。
  • 但如果你要深度调用系统 API(如文件系统、蓝牙、串口),你需要现学 Rust。Rust 的借用检查器(Borrow Checker)会劝退很多人。
  1. 资源生态
  • Electron 的插件和现成解决方案(如自动更新、崩溃报告)比 Tauri 成熟得多。

🎯 总结与选型建议

什么时候选 Electron?

  • 你的团队全是前端,完全不会 Rust,也不想学。
  • 你需要绝对统一的渲染表现(Pixel Perfect)。
  • 应用非常复杂,不仅仅是简单的 GUI,比如 VS Code 这种级别的 IDE。
  • 你不在乎安装包大小(用户硬盘够大)。

什么时候选 Tauri?

  • 你受不了 Electron 的臃肿,追求极致的启动速度小体积
  • 你不仅想要桌面端,还想顺手把移动端 (iOS/Android)也做了。
  • 你对安全性要求极高(金融、钱包类应用),Rust 的内存安全是巨大优势。
  • 你愿意为了性能,去学习一点点 Rust。

Next Step:
趁着 Tauri 2.0 刚发布,用它重构一个小工具试试水吧。当你看到生成的.exe文件只有 5MB 时,那种成就感是无与伦比的。

http://www.jsqmd.com/news/139488/

相关文章:

  • 【课程设计/毕业设计】基于Sprinboot的失物招领系统设计与实现基于springboot的学院失物招领平台的设计与实现【附源码、数据库、万字文档】
  • HTTP协议版本演进与实战核心问题解析(附练习题)
  • unittest中使用装饰器来实现环境的动态切换
  • HTTP协议核心知识点整理(附经典练习题)
  • 抢占校园流量入口!一套校园服务论坛系统源码=服务号+小程序+App,三端齐发!
  • 数眼智能大模型联网搜索 API 实战(附完整可运行代码)
  • 2025代理记账厂家推荐排行榜:从产能规模到专利技术权威解析 - 爱采购寻源宝典
  • URL 操作与缓存调试指南
  • Requestium - 将Requests和Selenium合并在一起的自动化测试工具
  • jemter题目测试
  • Airtest常用API介绍
  • 2025洒水车厂家推荐排行榜:湖北佰亚产能与专利双领先,恒达环保认证强 - 爱采购寻源宝典
  • 2025螺栓厂家推荐排行榜:从产能到质量双维度解析铂迈与群奥优势 - 爱采购寻源宝典
  • 阅读笔记10
  • fiddler的基本内容
  • http:HyperText Transfer Protoc的作用
  • 2025超声波热量表厂家推荐排行榜:从产能到专利的权威对比 - 爱采购寻源宝典
  • 科研常用工具
  • 2025冷库厂家综合实力排名TOP5:从产能到服务的全方位对比 - 爱采购寻源宝典
  • 用男性思维谈恋爱,爽到飞起谁懂啊
  • Java毕设项目推荐-基于Java的个人健康信息智慧管理系统的设计与实现基于java的个人健康管理系统的设计与实现【附源码+文档,调试定制服务】
  • 在Ubuntu中让独显进入D3 cold模式
  • 知从青龙队列刷写方案介绍
  • 奶奶辈微信昵称天花板[特殊字符],亲切又洋气!
  • 为精密系统甄选动力核心:微型磁力泵国产化替代厂家推荐 - 品牌2025
  • 2025文化石厂家推荐排行榜:河北若艺产能领先,内丘博艺专利突出 - 爱采购寻源宝典
  • 句句都不黄,[特殊字符]句句都很撩(贼上头)
  • 昇思MindSpore引领AI框架迈入“超节点时代”
  • 男人的通病,你越这样,他反而越爱你