GoForum › 🌐 V2EX
FluxDown(免费的 IDM 替代)桌面端从 Flutter 迁移到 GPUI 了,聊聊为什么和怎么做的
clow ·
2026-10-01 08:33 ·
0 次点赞 · 5 条回复
FluxDown 是一个免费的多协议下载管理器( HTTP 多线程 / BT / 磁力 / HLS 等),定位是 IDM 的替代品。这次来汇报一个比较大的变化:桌面端界面从 Flutter 换成了 GPUI( Zed 编辑器用的 Rust UI 框架)。
为什么换
FluxDown 的下载引擎一直是 Rust 写的,之前的桌面端是 Flutter 界面,通过 FFI 和 Rust 引擎通信。用下来主要有几个问题:
- 中间需要跨语言绑定,每加一个功能都要 Rust 、Dart 两边各写一遍,再生成绑定代码;
- 界面和引擎跑在同一个进程里,界面出问题,下载也会跟着受影响;
- 下载器需要常驻后台,但界面进程没必要耗费无用的内存等硬件资源。
所以干脆从引擎到界面全部改用 Rust 。
现在的架构
桌面端拆成了三个进程:
fluxdown-desktop ( GPUI 界面)
→ fluxdown-agent (常驻:托盘、账户、云同步、设备协同)
→ fluxdownd (纯下载核心)
- 关掉窗口后界面进程直接退出,下载由后台核心继续跑;
- 界面崩溃不会拖垮正在下载的任务;
- 进程之间走本机 JSON-RPC ,双方要互相鉴权。
这样拆还有个好处:NAS / 服务器上可以只跑 fluxdown-agent --server 加 fluxdownd,再用浏览器打开内置的 Web 页面来管理。和桌面端是同一套核心和接口,不用另外维护一个服务端版本。
链接
刚迁移完,后续就是移动端和浏览器插件的大更新了,欢迎试用后吐槽或提 issue 。
5 条回复
https://i.imgur.com/5tAkMkA.png 有发现一个显示的小问题。macOS 上输入框显式的是 Windows 的路径。https://i.imgur.com/N9E3iZ2.png
添加回复
你还需要 登录
后发表回复
有两个很奇怪的 UI 交互逻辑,第一个是左侧三个菜单,只有点击 webhook 时突然左侧区域收起变窄了。 第二,设置页面感觉不是一个模态窗,感觉现在的应用设置页面都是模态窗,就算不是也会影响主 UI 的操作。