QzoneArchive 中文文档 下载 App

为什么 QzoneArchive 选 Tauri 2 而不是 Electron

Tauri vs Electron:体积和安全的双重差异

桌面应用的两大主流框架是 Electron 和 Tauri。QzoneArchive 选择了 Tauri 2,这不是偶然:

对比项ElectronTauri 2QzoneArchive 选 Tauri 的理由
安装包体积80MB+(含 Chromium)20MB 以内(复用系统 WebView)归档工具可能要挂机几小时,体积小内存占用低
运行时内存数百 MB数十 MB后台跑归档不影响日常使用
前端与后端边界Node.js 和渲染进程共享权限边界弱Rust 后端通过 IPC 暴露最小权限登录凭证存在 Rust 侧,前端碰不到——关键安全设计
跨平台桌面 + 移动桌面 + 移动(Tauri 2 原生支持 Android/iOS)一个代码库覆盖桌面和移动端

分层架构

Tauri 的架构把应用分成清晰的两层:

┌─────────────────────────────────────────────┐
│  前端层:Vue 3 + PrimeVue + Pinia            │  ← 只负责界面渲染和用户交互
│  运行在系统 WebView 里                       │     不能直接访问文件系统或网络
└─────────────────┬───────────────────────────┘
                  │ IPC(进程间通信)
┌─────────────────┴───────────────────────────┐
│  后端层:Rust + rusqlite + reqwest            │  ← 负责所有系统级操作
│  进程原生运行                                 │     文件读写、HTTP 请求、数据库、Cookie 管理
└─────────────────────────────────────────────┘

登录凭证、归档进度、SQLite 数据库、媒体缓存——所有敏感或系统级的操作都在 Rust 后端。前端只能通过 IPC 调用后端暴露的接口,拿不到原始 Cookie 或数据库内容。

Tauri 2 的 Android 支持

Tauri 2 的一个重要新特性是原生支持 Android(和 iOS)。这意味着 QzoneArchive 的 Android 版不是单独的项目——它和桌面版共享同一套 Rust 后端代码,只是前端 UI 做了适配。

这样做的好处是:

一句话总结

Tauri 不是一个"更好看的 Electron",而是一个安全边界更清晰的应用框架。对于 QzoneArchive 这种需要处理用户登录凭证的工具,这个安全边界是选型时最关键的考虑。