了解Rust/Tauri

什么是 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,安全性更强。

语言分工:

  1. Rust(src-tauri) :程序主进程、文件读写、网络、硬件操作、业务逻辑、权限管控;高性能、内存安全。
  2. 前端(src) :只负责 UI 界面,默认没有 Node.js 环境 ,不能直接调用Node API。

二、核心优缺点

✅ 优点

  1. 体积极小、内存占用低;
  2. Rust 保证内存安全,不容易崩溃;
  3. 跨平台:一键打包Windows /macOS/ Linux;
  4. 精细权限模型:可以限制前端能否访问文件系统、网络;
  5. 支持自定义窗口、托盘、全局快捷键、弹窗、文件对话框;
  6. 支持生成**.exe、.dmg、.deb、.rpm安装包,还能做便携单文件程序**。

❌ 缺点

  1. 没有内置 Node,很多前端工具链不能直接用;
  2. Linux 依赖系统 WebKit,部分极简系统需要额外安装依赖;
  3. WebView 版本由系统决定,旧系统 WebView 浏览器特性会受限;
  4. 图形渲染重度应用(大型 2D/3D 游戏)不如原生 GUI 框架;
  5. 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 通信

相关推荐
geovindu38 分钟前
rust: Read-Write Lock Pattern
开发语言·后端·设计模式·rust·读写锁模式·同步型模式
怪我冷i39 分钟前
Rust智能指针Rc<T> 使用总结
开发语言·后端·rust
Kapaseker42 分钟前
删掉 1.1 万行 C 代码,Rust 正式接手 Android Binder
android·rust
mounter62517 小时前
深入理解 gccrs:GCC 如何实现 Rust 编译器,以及编译 Linux 内核面临的挑战
linux·驱动开发·rust
itmigrate2 天前
Rust 里的所有权误区:不是不写 clone 就叫高性能
开发语言·后端·rust
小灰灰搞电子2 天前
Rust+Slint 实现动态流光边框源码分享
开发语言·前端·rust·流光边框
Bigger2 天前
开源了一个"先预览、能反悔"的文件整理工具,聊聊背后的工程细节
rust·开源·app
老王IT2 天前
Rust开发环境搭建教程
开发语言·后端·rust
@大迁世界3 天前
告别 Go,拥抱 Rust
开发语言·golang·rust
低调滴开发3 天前
3 行代码写崩一个函数?切片才是 Rust 字符串处理的正确姿势
开发语言·后端·rust