Tauri:用 Web 技术构建桌面应用的新范式 一、Tauri 是什么Tauri 是一个用 Rust 编写的桌面应用开发框架MIT 协议开源GitHub 82k Star允许开发者使用 HTML/CSS/JS 前端技术栈构建跨平台桌面应用后端由 Rust 驱动。与 Electron 相比Tauri 不捆绑完整的 Chromium 浏览器而是复用操作系统内置的 WebView打包体积通常只有 Electron 应用的 1/20。二、核心优势2.1 极致的包体与内存占用Tauri 不内嵌浏览器引擎而是调用系统原生 WebViewWindows 用 WebView2、macOS 用 WKWebView、Linux 用 WebKitGTK。一个基础的 Tauri 应用指标ElectronTauri安装包大小~120 MB~5 MB内存占用空闲~250 MB~30 MB启动时间~2s~0.3sCPU 占用空闲~5%~0.1%2.2 安全优先的架构设计Tauri 从设计层面将安全置于首位。前端运行在沙箱化的 WebView 中默认无法直接访问系统 API。所有敏感操作文件读写、Shell 命令、系统调用必须通过 Rust 后端显式暴露的 IPC 通道且支持细粒度的权限配置。// tauri.conf.json 中的权限配置 { tauri: { allowlist: { fs: { scope: [$APP/*, $DOWNLOAD/*], readFile: true, writeFile: false }, shell: { open: true } } } }2.3 前端框架无关Tauri 对前端零侵入React、Vue、Svelte、Solid 甚至纯 HTML 均可使用。构建产物就是标准的前端静态资源Tauri 只负责将其嵌入原生窗口。2.4 Rust 驱动的后端性能Rust 带来了零成本抽象、内存安全和接近 C 的性能。对于需要密集计算的任务大文件哈希、图片处理、加密解密放在 Rust 后端执行比 JS 快数十倍。2.5 完整的生态工具链Tauri 提供了 CLI 脚手架、热重载开发服务器、自动更新、图标生成、跨平台打包等一整套工具开发者体验对标一线前端框架。三、适用场景场景推荐度说明工具类桌面应用笔记、剪贴板管理、截图强烈推荐包体小、内存省用户安装意愿高企业内部管理工具强烈推荐只需 WebView 运行时Windows 10 自带性能敏感应用音视频处理、文件管理推荐Rust 后端处理密集计算体验流畅跨平台 MVP 快速验证强烈推荐一套代码覆盖 Windows/macOS/Linux需要深度系统集成的应用推荐Tauri 2.x 支持插件系统扩展性强需要兼容 Windows 7 的场景不推荐WebView2 仅支持 Windows 10四、从零开始构建一个 Markdown 预览器4.1 环境准备# Windows 需安装 WebView2Win10 已内置 # 安装 Rust curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh # 安装 Tauri CLI cargo install tauri-cli4.2 创建项目# 使用 Vue 模板创建项目 npm create tauri-applatest md-previewer -- --template vue-ts cd md-previewer npm install4.3 编写前端界面!-- src/App.vue -- script setup langts import { ref } from vue; import { invoke } from tauri-apps/api/core; const input ref(# Hello Tauri\n\nType markdown here...); const html ref(); async function render() { html.value await invoke(render_markdown, { text: input.value }); } render(); /script template div classcontainer textarea v-modelinput inputrender classeditor / div v-htmlhtml classpreview / /div /template4.4 编写 Rust 后端// src-tauri/src/main.rs use pulldown_cmark::{Parser, html}; #[tauri::command] fn render_markdown(text: str) - String { let parser Parser::new(text); let mut html_output String::new(); html::push_html(mut html_output, parser); html_output } fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![render_markdown]) .run(tauri::generate_context!()) .expect(error while running tauri application); }4.5 添加 Markdown 解析依赖# src-tauri/Cargo.toml [dependencies] tauri { version 2, features [] } pulldown-cmark 0.114.6 运行与构建# 开发模式热重载 cargo tauri dev # 构建生产包 cargo tauri build构建完成后安装包约 6 MB而同等功能的 Electron 版约 150 MB。五、Tauri 2.x 的关键升级2024 年发布的 Tauri 2.0 带来了重大架构改进特性Tauri 1.xTauri 2.xIPC 方式invoke 事件新增 Channel API支持流式传输多窗口基础支持原生多窗口管理插件系统有限完全插件化20 官方插件移动端实验性iOS / Android 正式支持安全模型白名单基于 Capability 的权限系统文件系统基础 API虚拟文件系统 作用域隔离六、与其他方案的对比维度ElectronTauriFlutter Desktop语言JS CJS RustDart C包体大小大 (~120MB)小 (~5MB)中 (~30MB)内存占用高低中Web 技术栈原生支持原生支持需 WebView 插件原生性能中高Rust高Skia移动端不支持Tauri 2.x 支持支持生态成熟度极高快速增长成熟学习成本低纯 JS中需 Rust 基础中需 Dart七、总结Tauri 代表了桌面应用开发的下一代范式用前端技术写 UI 保持开发效率用 Rust 写后端保证性能和安全最终交付一个轻量、快速、用户愿意安装的桌面应用。对于任何需要分发桌面客户端的新项目Tauri 值得作为首选方案评估。参考开源地址GitHub - tauri-apps/tauri: Build smaller, faster, and more secure desktop and mobile applications with a web frontend. · GitHub