为了快速实现常见需求,Tauri 提供了一系列官方维护的插件。这些插件与核心框架解耦,你可以按需引入,保证应用体积不膨胀。每个插件都经过完整的测试和安全审核,支持桌面端和移动端,使用时只需在前端和 Rust 后端分别安装对应的包,并在配置中开启权限即可。
常用官方插件速览
- 存储(Store)
提供一个跨窗口、跨重启的持久化键值存储,数据默认保存在应用数据目录的 JSON 文件中。比 localStorage 更可靠,且可以在 Rust 端读写。
使用:npm install @tauri-apps/plugin-store,Rust 侧添加 tauri-plugin-store。前端可直接 set、get、save,适合保存用户设置、界面状态等。权限需开启 store:default。
- HTTP(HTTP)
让前端发起 HTTP 请求,底层基于 Rust 的 reqwest,不受浏览器 CORS 策略限制。Tauri 会强制检查请求地址是否在配置的白名单内,防止恶意代码随意访问外部网络。
使用:npm install @tauri-apps/plugin-http,Rust 侧添加 tauri-plugin-http。在 tauri.conf.json 中通过 security.dangerousRemoteDomainIpcAccess 或 v2 的权限体系声明允许的 URL,然后前端可用 fetch 函数直接请求。适合需要调用 API 的应用。
- 对话框(Dialog)
调用系统原生对话框:打开文件、保存文件、选择文件夹、消息警告、确认框等。界面完全是系统风格,比自制的 Web 弹窗更自然。
使用:npm install @tauri-apps/plugin-dialog,Rust 侧添加 tauri-plugin-dialog。前端可调用 open、save、message、ask 等方法,支持文件类型过滤、多选等。权限需开启对应的 dialog:allow-*。
- 通知(Notification)
向用户发送系统桌面通知,即使应用在后台也能触发。
使用:npm install @tauri-apps/plugin-notification,Rust 侧添加 tauri-plugin-notification。调用 sendNotification 并传入标题和正文。在 macOS 上需要获得授权,权限配置中需开启 notification:default。
- 数据库(SQL)
直接在前端操作 SQLite 数据库,无需手动编写 Rust 数据层。支持执行 SQL 语句、批量插入、迁移等,数据文件储存在应用私有目录。
使用:npm install @tauri-apps/plugin-sql,Rust 侧添加 tauri-plugin-sql。通过 Database.load("sqlite:test.db") 打开连接,然后即可执行查询。非常适合本地数据管理工具或缓存大量结构化数据。
- 日志(Log)
统一收集前端和 Rust 后端的日志,输出到控制台或指定文件,支持设定日志级别(trace、debug、info、warn、error)。
使用:npm install @tauri-apps/plugin-log,Rust 侧添加 tauri-plugin-log。在前端调用 info、warn 等方法,Rust 端可使用标准的 log 宏。配置文件中可设定日志输出路径和轮转策略。
安装与启用三步走
以 HTTP 插件为例,实际使用步骤如下:
- Rust 端添加依赖(
src-tauri/Cargo.toml):
[dependencies]
tauri-plugin-http = "2"
- 前端安装 npm 包:
npm install @tauri-apps/plugin-http
- 在权限文件中启用(
src-tauri/capabilities/default.json的permissions数组中添加):
"http:default"
其他插件的配置方式完全一致,只是插件名和权限标识不同。Tauri 官方还维护了剪贴板、全局快捷键、进程管理、窗口自定义等几十个插件,且都在持续迭代。因为这些插件与核心解耦,即使你全部装上,增加的应用体积也往往只有几百 KB,不存在“不用也占着空间”的问题。在真实项目中,善用官方插件能让你用极少的代码量获得原生级别的功能,大幅提升开发效率。