zerx-lab/FluxDown
GitHub: zerx-lab/FluxDown
一款基于 Rust 引擎的开源多协议下载管理器,支持 HTTP/FTP/BitTorrent/流媒体下载与 AI agent 集成,定位为免费跨平台的 IDM 替代方案。
Stars: 378 | Forks: 29

# FluxDown
### 下载,全面提速。
*一款极速、多协议的下载管理器 — 免费且开源的 IDM 替代方案。*
[](https://github.com/zerx-lab/FluxDown/releases/latest)
[](https://github.com/zerx-lab/FluxDown/releases)
[](LICENSE)
[](#installation)
[](native/engine)
[](lib)
[](https://glama.ai/mcp/servers/zerx-lab/FluxDown)
[**官网**](https://fluxdown.zerx.dev) · [**下载**](https://fluxdown.zerx.dev/#download) · [**更新日志**](https://fluxdown.zerx.dev/changelog) · [**常见问题**](https://fluxdown.zerx.dev/faq) · [**反馈**](https://fluxdown.zerx.dev/feedback)
**English** | [简体中文](README.zh-CN.md)
## 亮点
- **快达 10 倍** — 采用 Rust + Tokio 引擎,支持 IDM 风格的动态分段
- **多协议** — HTTP/HTTPS、FTP、BitTorrent、eD2K、HLS 和 DASH 流媒体
- **浏览器集成** — 支持 Chrome / Edge / Firefox 扩展程序,配备三层拦截引擎
- **AI-agent 就绪** — 内置 MCP (Model Context Protocol) server:让 Claude、Cursor 等 AI 客户端管理你的下载任务
- **随处恢复** — 完整的下载状态持久化到 SQLite 中;从容应对崩溃与重启
- **精美 UI** — 支持明亮/暗黑主题、13 种配色方案、响应式三栏布局
- **纯净隐私** — 永久免费,无广告,无追踪,无需账号,本地优先
## 功能
| 功能 | 描述 |
|---|---|
| **Rust 驱动引擎** | 基于 Rust 和 Tokio 构建,具备零成本抽象 — 在实现内存安全的同时提供最大的吞吐量 |
| **智能分段** | 分段在 runtime 动态切分;空闲线程会自动救援慢速分段,就像 IDM 一样 — 但更智能 |
| **多协议** | 为 HTTP/HTTPS、FTP、BitTorrent (DHT/UPnP/magnet)、eD2K (server + Kad DHT source finding, MD4 verification)、HLS (AES-decrypt) 和 DASH 提供专用引擎 |
| **速度控制** | 基于 Token-bucket 的全局限速 — 在后台静默下载,不干扰你的日常浏览 |
| **随处恢复** | 每个字节都被记录在开启 WAL 模式的 SQLite 中;断电绝不会让你丢失进度 |
| **浏览器集成** | 三层下载拦截、流媒体嗅探、Alt+Click 绕过、右键发送 |
| **MCP Server** | 内置 Model Context Protocol endpoint (Streamable HTTP) 及 9 个工具 — AI agents 可以添加、监控和控制下载任务 |
| **精美界面** | shadcn 风格的小部件、IDM 风格的分段可视化、命名队列、系统托盘 |
| **纯净隐私** | 零广告、零强制遥测、零账号 — 你的数据永远不会离开你的设备 |
## FluxDown 与 IDM 对比
| | FluxDown | IDM |
|---|:---:|:---:|
| 价格 | **永久免费** | $24.95 + 续费 |
| 开源 | 是 (AGPL-3.0) | 否 |
| 平台支持 | Windows / macOS / Linux / NAS / Android | 仅限 Windows |
| BitTorrent & magnet | 是 | 否 |
| eD2K / eMule 链接 | 是 | 否 |
| HLS / DASH 流媒体 | 是 | 部分 |
| 动态分段 | 是 | 是 |
| 浏览器扩展 | Chrome / Edge / Firefox | 是 |
| 广告与追踪 | **无** | — |
## 安装
从 [**GitHub Releases**](https://github.com/zerx-lab/FluxDown/releases/latest) 或 [**fluxdown.zerx.dev**](https://fluxdown.zerx.dev/#download) 获取最新的构建版本:
| 平台 | 安装包 |
|---|---|
| **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) | 各架构专用 `.apk` · 通用版 `.apk` |
| **NAS / Server** (headless, x64 / ARM64) | [Docker](https://ghcr.io/zerx-lab/fluxdown-server) · 群晖 DSM 6/7 `.spk` · 威联通 `.qpkg` · OpenWrt `.ipk` · Unraid CA 模板 · CasaOS / ZimaOS 应用商店 |
### 浏览器扩展
安装扩展程序,让 FluxDown 自动接管浏览器的下载任务:
[

](https://chromewebstore.google.com/detail/fluxdown/meleenglfggcmcajknpeeeiobnpfmahc)
[

](https://microsoftedge.microsoft.com/addons/detail/fluxdown/nglkkjbogjghekbhhcnccnpfedjbdhhd)
[

](https://addons.mozilla.org/firefox/addon/fluxdown)
## MCP Server (Model Context Protocol)
FluxDown 内置了 **MCP server**,以便 AI agents (Claude Desktop、Cursor、Cline 等) 能够通过 [Model Context Protocol](https://modelcontextprotocol.io) 管理下载任务。它使用 **Streamable HTTP** (通过单个 `POST /mcp` 进行 JSON-RPC 2.0 通信) 在本地 API 端口上运行 — 无需额外进程。
- **Endpoint**: `http://127.0.0.1:17800/mcp` (默认仅限本地)
- **认证**: Bearer token (`Authorization: Bearer
` 或 `X-FluxDown-Token`),与管理 API 共享
- **启用**: 设置 → API 服务 → 开启 *MCP endpoint* (会自动生成一个 token);headless server 默认开启此功能
### 工具 (9)
| 工具 | 描述 |
|---|---|
| `download_add` | 创建下载任务 (HTTP/HTTPS、FTP、magnet、BitTorrent) |
| `download_list` | 列出任务及其进度/速度/状态,支持可选的状态过滤 |
| `download_get` | 通过 ID 获取单个任务 |
| `download_pause` / `download_resume` | 暂停 / 恢复单个任务 |
| `download_pause_all` / `download_resume_all` | 暂停 / 恢复所有任务 |
| `download_remove` | 移除任务,可选择是否删除已下载的文件 |
| `queue_list` | 列出命名队列及其配置 |
### 客户端配置
```
{
"mcpServers": {
"fluxdown": {
"url": "http://127.0.0.1:17800/mcp",
"headers": { "Authorization": "Bearer " }
}
}
}
```
MCP 层是在 [`native/api/src/mcp.rs`](native/api/src/mcp.rs) 中实现的,它基于为 REST 管理 API 和兼容 aria2 的 JSON-RPC 提供支持的同一个 `ApiHost` trait。
## 架构
Flutter 负责渲染 UI;无 FFI 依赖的 Rust 引擎负责执行核心任务。两者通过 [Rinf](https://rinf.cunarist.org) 信号进行通信,浏览器扩展则通过 Native Messaging 进行连接。
```
flowchart TD
EXT["Browser Extension (WXT)"] -->|Native Messaging| NMH["fluxdown_nmh"]
NMH -->|Named Pipe / Unix socket| HUB
UI["Flutter UI (shadcn_ui)"] <-->|Rinf signals| HUB["hub — FFI adapter"]
HUB --> ENGINE["fluxdown_engine"]
ENGINE --> HTTP["HTTP/HTTPS"]
ENGINE --> FTP["FTP"]
ENGINE --> BT["BitTorrent"]
ENGINE --> ED2K["eD2K"]
ENGINE --> HLS["HLS / DASH"]
ENGINE --> DB[("SQLite")]
```
| 层级 | 技术 | 路径 |
|---|---|---|
| UI | Flutter + shadcn_ui | [`lib/`](lib) |
| FFI bridge | Rinf (Dart ↔ Rust signals) | [`native/hub/`](native/hub) |
| Download engine | Rust + Tokio (zero FFI deps) | [`native/engine/`](native/engine) |
| Browser extension | WXT + TypeScript | [`fluxDown/`](fluxDown) |
| Website | Astro + React | [`website/`](website) |
## 从源码构建
**前置条件**: [Flutter SDK](https://docs.flutter.dev/get-started/install) · [Rust 工具链](https://www.rust-lang.org/tools/install) · [Rinf CLI](https://rinf.cunarist.org)
```
# 检查你的环境
rustc --version
flutter doctor
# 安装 Rinf CLI(一次)
cargo install rinf_cli
# 获取依赖并生成 Dart bindings
flutter pub get
rinf gen
# 在 debug 模式下运行
flutter run
# 构建 release
flutter build windows --release # or: macos / linux
```
Linux 系统依赖
```
# Debian/Ubuntu
sudo apt-get install cmake ninja-build clang pkg-config \
libgtk-3-dev libayatana-appindicator3-dev libnotify-dev libsecret-1-dev patchelf zstd
# Arch Linux
sudo pacman -S cmake ninja clang pkgconf gtk3 libayatana-appindicator libnotify libsecret patchelf zstd
```
NMH 中继二进制文件 (`fluxdown_nmh`) 会在执行 `flutter build` 时由 CMake 自动构建。各个发行版的安装包 (AppImage / deb / Arch / 便携版) 会在每次打 tag 时由 [CI](.github/workflows/release.yml) 自动生成。
运行测试
```
flutter test # Dart tests
cargo test -p fluxdown_engine # Rust engine tests
cargo test -p hub # FFI adapter tests
```
## 许可证
基于 [GNU Affero General Public License v3.0](LICENSE) 分发。
**如果 FluxDown 为你节省了时间,请考虑点个 Star — 这有助于让更多人发现这个项目。**
由 [zerx-lab](https://github.com/zerx-lab) 制作
标签:BitTorrent, Flutter, HTTP 参数枚举, MCP, Rust, 下载管理器, 可视化界面, 多线程加速, 流媒体下载, 网络流量审计, 请求拦截, 通知系统