Tauri框架详解
Tauri
是一个新兴的桌面应用开发框架,它使用 Rust
构建底层逻辑,前端则采用 Web
技术栈。与传统的 Electron
相比,Tauri
提供了更小的打包体积和更高的安全性,逐渐成为跨平台桌面应用的热门选择。
Tauri 是什么?
Tauri
是一个用于构建跨平台桌面应用的框架。它结合了系统级的 Rust
后端与基于 Webview
的前端界面,使得开发者可以用 React
、Vue
、Svelte
等前端框架快速构建 UI
,同时用 Rust
提供系统功能支持。
Tauri
的主要特性包括:
- 支持 Windows、macOS 和 Linux。
- 打包体积小(甚至低于 5MB)。
- 安全性高(严格的 API 权限模型)。
- 启动速度快、资源占用低。
- 支持原生窗口控制、文件操作、通知等。
Tauri 与 Electron
对比项 | Tauri | Electron |
---|---|---|
底层语言 | Rust | Node.js + Chromium |
体积大小 | 几 MB | 通常几十 MB 到上百 MB |
内存占用 | 较低 | 较高 |
前端技术栈 | 任意 Web 技术 | 任意 Web 技术 |
安全性 | 更强,基于权限声明和沙箱 | 相对较弱 |
执行性能 | 快速,基于原生调用 | 较慢,运行在完整浏览器内核 |
社区与成熟度 | 新兴,但快速增长 | 成熟,生态丰富 |
Tauri 的架构设计
Tauri
主要由以下几部分组成:
- 前端界面(Webview):你可以使用任何支持构建 HTML/CSS/JS 的框架,如 Vue、React、Svelte 等。
- 后端逻辑(Rust):用于处理系统级操作,如文件读写、窗口控制、进程管理等。
- 通信桥梁:前端通过
invoke
与后端通信,后端通过command
注册函数。
前端代码示例:
1 | import { invoke } from '@tauri-apps/api/tauri' |
Rust 后端代码示例:
1 |
|
快速上手指南
安装前置工具
安装 Rust:
https://rustup.rs
安装 Node.js 和包管理工具(npm/yarn/pnpm)
安装 Tauri CLI:
1
cargo install create-tauri-app
创建项目
以 Vite + React + TypeScript 为例:
1 | npm create vite@latest my-tauri-app -- --template react-ts |
项目结构说明
1 | my-tauri-app/ |
配置与构建
配置文件位于 src-tauri/tauri.conf.json
,你可以配置窗口大小、图标、应用名称、权限限制等。
构建命令:
1 | npm run tauri build |
生成的可执行文件将保存在 src-tauri/target/release/bundle
下。
常用功能实践
调用后端命令
前端通过 invoke
调用 Rust 命令,命令需要在 main.rs
中通过 #[tauri::command]
注册。
文件系统操作
1 | import { readTextFile, writeFile } from '@tauri-apps/api/fs' |
自定义窗口
1 | import { appWindow } from '@tauri-apps/api/window' |
系统通知
1 | import { notify } from '@tauri-apps/api/notification' |
相关使用场景
Tauri 特别适合以下类型的桌面应用:
- 笔记、任务、日历等工具类应用
- Markdown 编辑器、终端工具、配置面板
- 私有后台管理桌面客户端
- 追求高性能和轻量部署的内部工具
不足与注意事项
- 开发中涉及 Rust,需要一定的学习成本。
- Webview2(Windows)需用户本地已安装,否则需额外下载。
- 部分高级桌面功能需要手动扩展 Rust 插件。
总结
Tauri 提供了一种更现代、更轻量的方式来构建桌面应用。通过前端 + Rust 的组合,它既保留了 Web 开发的快速构建能力,又具备原生应用的性能与系统集成能力。对于需要控制体积、安全性要求高、或希望减少资源占用的项目来说,Tauri 是一个值得认真考虑的方案。