FluxDown:用 Rust 重写的多协议下载管理器,免费开源的 IDM 替代品

FluxDown 是一款 Rust 驱动的跨平台多协议下载管理器:HTTP/FTP/BitTorrent/eD2K/HLS/DASH 六协议同引擎,运行时动态分段 + 工作窃取加速,GPUI 原生界面三进程架构,浏览器三层拦截,还内置 MCP Server 让 AI 代理管理下载。AGPL-3.0 开源、零广告、本地优先。

先说结论:如果你还在用 IDM,或者厌倦了 aria2 的命令行,FluxDown 是目前最值得试一试的那一个。

它 2026 年 7 月才开源,三个月就冲到 3.5k star,最新版 v0.5.3(2026-10-03)一次性发布了 48 个构建产物 —— 从 Windows 安装包到群晖 .spk、OpenWrt .ipk,再到 Android APK。而它最狠的一步棋,是在 v0.5.0 把已经能用的 Flutter 界面整个推倒重写,换成了纯 Rust 的 GPUI。

图:FluxDown 官方宣传图

目录

  1. FluxDown 是什么
  2. 六种协议,一个引擎
  3. 智能分段:会自我平衡的分段
  4. 原生架构:关掉窗口,下载继续
  5. 浏览器接管:三层拦截
  6. MCP Server:让 AI 帮你下东西
  7. 一处引擎,处处运行
  8. 可扩展:插件 / RSS / Webhooks / 主题
  9. 隐私优先
  10. 和 IDM 正面对比
  11. 安装与上手
  12. 从源码构建
  13. 升级前要留意的几个坑
  14. 小结

一、FluxDown 是什么

FluxDown 的自我定位只有一句话:Downloads, Supercharged.(下载,全面加速) —— 一款免费开源的多协议下载管理器,目标是做 IDM 的替代品。

项目信息
仓库github.com/zerx-lab/FluxDown
作者ZerxLab
主语言Rust
许可证AGPL-3.0
最新版本v0.5.3(2026-10-03)
开源时间2026-07-03
热度约 3.5k stars / 194 forks(截至 2026-10-04)
官网fluxdown.zerx.dev

它的卖点可以概括成五条:

  • 快 —— Rust + Tokio 引擎,IDM 风格的运行时动态分段;
  • 全 —— HTTP/HTTPS、FTP、BitTorrent、eD2K、HLS、DASH 六种协议共用一个引擎;
  • 原生 —— GPUI 直接 GPU 渲染,没有 WebView、没有 Electron;
  • 能扩展 —— 沙箱 JS 插件、RSS 自动化、Webhooks、命名队列;
  • 对 AI 友好 —— 内置 MCP Server,Claude、Cursor 这类客户端可以直接操控你的下载。

二、六种协议,一个引擎

大多数下载器只把 HTTP 做好就收工了,FluxDown 则是每种协议都有一个专用下载器,但跑在同一个 Rust 引擎里 —— 它们共享队列、限速、重试、分类和续传状态。这意味着你可以把 BT 任务、HLS 视频和普通 HTTP 文件放进同一条队列统一调度。

协议能力
HTTP / HTTPSRange 请求、动态分段、Cookie、自定义 Header、代理
FTP经典文件服务器,支持断点续传,与其它任务同队列
BitTorrent磁力链接与 .torrent,DHT / UPnP,支持单文件选择与 tracker 列表
HLS选清晰度、并行抓取分片、AES-128 解密、合并为单文件
DASH音轨与视频轨分别下载,结束后封装
eD2Ked2k:// 链接,通过服务器列表 + Kad DHT 找源,MD4 校验

值得注意的是 HLS 与 DASH 的专门引擎:这是 IDM 只做到「部分支持」的地方,也是流媒体下载最容易翻车的环节(分片顺序、解密、音视频合并)。FluxDown 把它做成了完整链路。

三、智能分段:会自我平衡的分段

这是它区别于普通多线程下载器的核心技术点。

传统多线程下载器的做法是:启动时把文件按固定份数切好,然后每个线程盯住自己那一段。问题是 —— 如果某一段恰好落在一个慢镜像上,整条下载就被它拖住了,其它线程干完活只能空转。

FluxDown 的引擎是运行时动态拆分:

  • 按需拆分(Split on demand) —— 连接数逐步爬升,且只在服务器扛得住的时候才加;
  • 工作窃取(Work stealing) —— 某条连接提前完成时,它把当前仍在传输的最大分段一分为二,接管后半段;
  • 连接复用(Connection reuse) —— keep-alive socket 在分段之间跳转,不重新握手;
  • 按域学习(Learns per domain) —— 每个主机记住连接数上限和热启动提示。

一句话概括效果:没有任何一个慢镜像能把整条下载当人质。

四、原生架构:关掉窗口,下载继续

v0.5.0(2026-09-30)是 FluxDown 的分水岭。作者在官方公告里写了一篇长文解释为什么把能用的 Flutter 界面推倒重写,理由很实在:

  • Flutter 版把界面和下载引擎塞在同一个进程里,通过 FFI 信号桥通信 —— 界面一出问题,正在下载的任务跟着一起完蛋;
  • 桌面端 Flutter 没有真正的多窗口,设置、队列管理、任务详情只能全塞在主窗口里当对话框;为了一个小小的快速下载窗口,得给 Windows 写 C++、macOS 写 Swift、Linux 写 C 各做一个原生宿主,再嵌一个完整的 Flutter 引擎进去;
  • 那个小窗口的引擎一旦创建就无法销毁(反复创建销毁会崩),只能常驻内存到应用退出;为了后台下载,整个 Flutter 界面也得一直挂着;
  • 加一个按钮要写 Rust signal → 生成 Dart 绑定 → 再写一遍 Dart 模型,同一件事在两种语言里做两遍。

于是作者选择用 GPUI(Zed 编辑器背后的 Rust UI 框架)重写整个桌面客户端 —— 界面直接画在 GPU 上,没有 WebView、没有 Electron、没有第二种语言,从下载引擎到屏幕上的每一个像素都是同一份 Rust 代码库。

重写规模(作者自述):3 个进程、11 个独立 UI 模块、约 6.8 万行 Rust UI 代码,外加约 3 万行重写的 Web 控制台。

更重要的是架构上的三层分离:

这套拆分带来的直接变化:

  • 关掉窗口,下载继续 —— 界面进程完全退出,把内存还给系统;常驻的只有 agent 和下载核心,不含任何 UI 运行时;
  • 界面崩了也伤不到文件 —— 正在下载的数据和画界面的进程彻底隔离;
  • NAS 上的 Web 控制台与桌面端能力对齐 —— 因为核心和界面说的是同一套协议。

新界面还补了不少细节:⌘K / Ctrl+K 命令面板、真正的多窗口(位置尺寸记忆)、任务列表显示系统文件图标(双击打开、拖出文件)、任务详情里的「来源构成 / 速度」页(看清数据来自 CDN、代理还是哪张网卡)、长列表刷新时行序稳定不跳动,以及基于声明式 token 的新主题系统。

五、浏览器接管:三层拦截

FluxDown 提供了 Chrome、Edge、Firefox 三个平台的扩展,它会在浏览器保存文件之前把下载截走 —— 连同 Cookie 和 Referer 一起送进 FluxDown 的「新建下载」窗口。

  • 三层拦截:响应头、文件名判定、最后兜底,层层递进,专治别人漏掉的场景;
  • 媒体嗅探:自动发现页面上的视频、音频、HLS 与 DASH 流,按标签页分组;
  • 剪贴板与链接:复制的 URL 和 fluxdown: 链接会打开同一个表单并预填;
  • 不想装扩展? 还有油猴(Tampermonkey)脚本,直接向本地 API 投递。

六、MCP Server:让 AI 帮你下东西

这是 FluxDown 在同类工具里最不一样的地方:它内置了一个 MCP(Model Context Protocol)服务器,让 Claude Desktop、Cursor、Cline 这类 AI 客户端直接管理你的下载。

  • 端点:http://127.0.0.1:17800/mcp(默认仅本机可访问)
  • 协议:Streamable HTTP,在单个 POST /mcp 上跑 JSON-RPC 2.0
  • 鉴权:Bearer Token(Authorization: Bearer <token> 或 X-FluxDown-Token),与本地管理 API 共用
  • 开启:设置 → API 服务 → 打开「MCP 端点」开关(自动生成 token);无界面服务器版本默认开启
  • 无需额外进程:跑在本地 API 端口上

提供的 12 个工具:

工具作用
download_add创建下载任务(HTTP/HTTPS、FTP、磁力、BitTorrent)
download_list列出任务,含进度 / 速度 / 状态,可按状态过滤
download_get按 ID 获取单个任务
download_pause / download_resume暂停 / 恢复单个任务
download_pause_all / download_resume_all暂停 / 恢复所有任务
download_remove删除任务,可选删除已下载文件
queue_list列出命名队列及其配置
rss_list列出 RSS 订阅及配置与运行时状态
rss_add订阅 RSS 源并按计划开始轮询
rss_remove删除 RSS 订阅及其收集的条目

客户端配置示例:

{
  "mcpServers": {
    "fluxdown": {
      "url": "http://127.0.0.1:17800/mcp",
      "headers": { "Authorization": "Bearer <your-token>" }
    }
  }
}

MCP 层实现在 native/api/src/mcp.rs,建立在同一个 ApiHost trait 之上 —— 该 trait 同时驱动 REST 管理 API 和 aria2 兼容的 JSON-RPC。也就是说,FluxDown 能当 aria2 的替代品被现有前端调用。

七、一处引擎,处处运行

同一个 Rust 引擎,撑起了桌面端、NAS 无界面服务器、可脚本化 CLI 和 Android 应用,全部说同一套 API。

形态平台
桌面端Windows(x64 / ARM64)、macOS(Intel / Apple Silicon)、Linux(x64)
服务器 / NASDocker、群晖 DSM 6/7 .spk、QNAP .qpkg、OpenWrt .ipk、Unraid CA、CasaOS / ZimaOS
CLI远程或 --local 本地模式
Android原生应用(按 ABI 分发 APK)

NAS / 服务器版本自带 Web 控制台,一行 Docker 就能跑起来:

docker run -d \
  --name fluxdown-server \
  --restart unless-stopped \
  -p 17800:17800 \
  -v fluxdown-data:/data \
  -v /path/to/downloads:/root/Downloads \
  ghcr.io/zerx-lab/fluxdown-server:latest

v0.5.0 还把 Web 控制台从零重写,布局与操作和桌面端一一对应。同时补上了多设备能力:任务可以下发到云端设备,或通过局域网配对发到同网段的其它设备(配对用短安全码确认),并且支持多网卡聚合下载 —— 一张网卡不够就几张一起上。

八、可扩展:插件 / RSS / Webhooks / 主题

FluxDown 的定位不只是「一个下载器」,更像一个可编程的下载平台:

  • 插件(Plugins) —— 沙箱化 JavaScript 运行时。Resolver 把网页转成直链,Hook 在任务开始 / 完成 / 失败时响应,权限需要显式声明;
  • 托管组件(Managed components) —— ffmpeg 和 yt-dlp 按需安装、在隔离环境里调用,不用再折腾 PATH;
  • RSS 自动化 —— 订阅源 + 规则过滤,新条目自动下载,无需人工干预;
  • 队列与计划 —— 命名队列各有自己的顺序,支持每日启动 / 停止计划;
  • Webhooks —— 把任务事件推到任意端点,可按队列和事件类型过滤;
  • 主题 —— 内置亮 / 暗调色板,强调色任选。

九、隐私优先

这一条是 FluxDown 对商业软件最直接的差异化:没有账号、没有广告、不追踪你下载了什么。

官方说明里唯一会离开你机器的,是两个匿名计数器 —— 「安装量」和「今日活跃」,而且可以关闭。数据本地优先,任务、历史、设置全部存在本机同一个 SQLite 库里。

十、和 IDM 正面对比

项目FluxDownIDM
价格免费开源$24.95 + 续费
开源是(AGPL-3.0)否
平台Windows / macOS / Linux / NAS / Android仅 Windows
BitTorrent 与磁力支持不支持
eD2K / eMule 链接支持不支持
HLS / DASH 流媒体支持部分支持
动态分段支持支持
浏览器扩展Chrome / Edge / Firefox支持
广告与追踪无—

一句话:IDM 在 Windows 上依然是老牌强者,但跨平台、BT/eD2K、流媒体这三块是它的硬伤,而 FluxDown 全部覆盖,且免费。

十一、安装与上手

从 GitHub Releases 或官网下载页获取最新构建:

平台包格式
Windows(x64 / ARM64)setup.exe 安装程序 · 便携版 .zip
macOS(Intel / Apple Silicon).dmg · 便携版 .tar.gz
Linux(x64).AppImage · .deb · Arch .pkg.tar.zst · 便携版 .tar.gz
Android(arm64-v8a / armeabi-v7a / x86_64)按 ABI 的 .apk · 通用 .apk
NAS / ServerDocker · 群晖 DSM 6/7 .spk · QNAP .qpkg · OpenWrt .ipk · Unraid CA · CasaOS / ZimaOS

浏览器扩展:

上手三步:装桌面客户端 → 装浏览器扩展 → 在「设置 → API 服务」里打开 MCP 端点开关(想让 AI 帮忙下东西的话)。

十二、从源码构建

前置要求:Flutter SDK(Android 端仍用 Flutter)、Rust 工具链、Rinf CLI。

# 克隆开发分支(main = 活跃开发,stable = 稳定发布)
git clone -b main https://github.com/zerx-lab/FluxDown.git
cd FluxDown

# 检查环境
rustc --version
flutter doctor

# 安装 Rinf CLI(只需一次)
cargo install rinf_cli

# 拉依赖并生成 Dart 绑定
flutter pub get
rinf gen

# 调试运行
flutter run

# 构建发布版
flutter build apk --release       # 或 ios

跑测试:

flutter test                          # Dart 测试
cargo test -p fluxdown_engine         # Rust 引擎测试
cargo test -p hub                     # FFI 适配层测试

提交前请确保通过:

cargo fmt --check && cargo clippy -- -D warnings   # Rust
flutter analyze                                     # Dart

注意:main 是开发分支,stable 只追踪稳定发布,维护者从 main 推进。

十三、升级前要留意的几个坑

如果你从旧的 Flutter 版本升级到 v0.5.x,作者明确列了几条注意事项:

  • 数据不丢 —— 任务、历史、设置都在同一个本地库里,升级后照旧;Windows 安装程序会就地覆盖旧版,文件关联和磁力 / ed2k 链接会自动指向新客户端;
  • 局域网配对协议升到 v2 —— 两端设备要一起升级;
  • 保存的站点凭据需要重新输入一次;
  • 浏览器扩展要跟着桌面端一起更新,否则可能显示「未连接」;
  • Windows 构建目前未签名,首次启动系统会弹警告;
  • Android 应用仍然是 Flutter,但会持续获得引擎更新。

十四、小结

FluxDown 真正吸引人的地方,不在于它「又一个下载器」,而在于三个选择:

  1. 把引擎做扎实 —— 六协议同引擎、运行时动态分段 + 工作窃取,这是速度的根;
  2. 把架构做干净 —— 为了「关掉窗口下载继续」这一件事,宁可推倒 Flutter 重写成 GPUI 三进程,这种工程决断在个人项目里并不多见;
  3. 把接口对外开放 —— REST、aria2 兼容 JSON-RPC、CLI、Webhooks,再加一个 MCP Server,让它从「工具」变成了「可被编排的下载基础设施」。

适合谁:需要跨平台下载方案的人、NAS 用户、BT / 磁力 / 流媒体下载需求重的用户、想把下载接进自动化流程或 AI Agent 的开发者。

暂时要接受的:项目开源才三个月,v0.5.x 还在快速迭代期;Windows 包未签名;生态(插件市场)刚起步。

本文基于 FluxDown 官方仓库 README 与官网公开资料整理,版本信息截至 v0.5.3(2026-10-03)。软件处于活跃开发阶段,功能与界面可能随时变化,请以官方仓库和官网为准。项目采用 AGPL-3.0 许可证,使用与二次分发请遵守其许可条款。


项目信息