Skip to content

计划在 AI 协助下将 BoxPlayer 从 Electron 迁移到 Tauri #508

Description

@gaozhangmin

背景

BoxPlayer 目前基于 Electron 构建。Electron 的生态成熟、踩坑少,但也带来了一些长期被用户反馈的问题:
安装包过大、内存占用高、启动慢、自动更新偶有失败等。

为了给大家更轻量、更流畅的桌面体验,本项目计划在 AI 辅助 下,逐步将主框架从
Electron 迁移到 Tauri。本 issue 用于公开告知此计划,
并收集社区的意见和顾虑。

为什么是 Tauri

维度 Electron(当前) Tauri(目标)
安装包大小 ~120 MB+ ~5–15 MB
内存占用 较高(自带 Chromium) 显著降低(系统 WebView)
启动速度 偏慢 明显更快
后端语言 Node.js Rust(更安全、更高性能)
安全性 默认开放面较大 默认最小权限,能力按需开启
自动更新 electron-updater 内置 updater,签名校验更规范
系统集成 一般 更贴近原生(托盘、通知、协议)

迁移带来的好处

  • 更小的体积:用户下载和升级速度大幅提升,省流量、省磁盘。
  • 更低的资源占用:内存、CPU 占用下降,老旧设备也能流畅运行。
  • 更快的启动:冷启动时间显著缩短。
  • 更安全:Rust 后端 + Tauri 的最小权限模型,减少潜在风险面。
  • 更好的可维护性:借助 AI 重构,代码风格更统一,模块边界更清晰。
  • 更顺滑的自动更新:原生的 updater 机制,签名与回滚更可靠。

迁移可能带来的影响

  • 部分依赖 Node 原生模块(如 aria2 调度、文件系统操作)需要用 Rust 重写或寻找等价方案。
  • WebView 在不同平台(Windows WebView2 / macOS WKWebView / Linux WebKitGTK)行为存在
    细微差异,渲染层可能需要做兼容性调整。
  • 迁移期间可能出现短暂的功能缺失或回归,会以分阶段、可灰度的方式推进。

计划与节奏

  1. 阶段一:搭建 Tauri 工程骨架,前端 Vue 代码尽量原样复用。
  2. 阶段二:核心能力迁移(账号、网盘文件操作、播放器、媒体服务器、下载器)。
  3. 阶段三:自动更新、托盘、协议跳转、系统集成等收尾。
  4. 阶段四:双轨并行一段时间(Electron 旧版 + Tauri 新版),稳定后切换主线。

迁移期间 Electron 版本继续维护关键 bug 修复,不会立刻停更。

寻求社区反馈

  • 你最在意 Tauri 版本带来的哪个改进?(体积 / 内存 / 启动 / 安全 / 其他)
  • 有没有强依赖于当前 Electron 行为的使用场景,希望我们在迁移时重点关注?
  • 你愿意试用 Tauri 预览版并提供反馈吗?

欢迎在评论区讨论。🙏

备注:迁移工作将在 AI 辅助下进行,但所有合并到主线的代码都会经过人工审阅与测试,
不会因此降低质量标准。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions