zerx-lab/FluxDown

GitHub: zerx-lab/FluxDown

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

Stars: 378 | Forks: 29

FluxDown Logo # FluxDown ### 下载,全面提速。 *一款极速、多协议的下载管理器 — 免费且开源的 IDM 替代方案。* [![最新发布](https://img.shields.io/github/v/release/zerx-lab/FluxDown?style=flat-square&color=06b6d4&label=release)](https://github.com/zerx-lab/FluxDown/releases/latest) [![下载量](https://img.shields.io/github/downloads/zerx-lab/FluxDown/total?style=flat-square&color=22c55e)](https://github.com/zerx-lab/FluxDown/releases) [![许可证: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue?style=flat-square)](LICENSE) [![平台](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux%20%7C%20NAS%20%7C%20Android-8b5cf6?style=flat-square)](#installation) [![Rust](https://img.shields.io/badge/engine-Rust-f74c00?style=flat-square&logo=rust)](native/engine) [![Flutter](https://img.shields.io/badge/UI-Flutter-02569B?style=flat-square&logo=flutter)](lib) [![MCP Server](https://img.shields.io/badge/MCP-Glama-8b5cf6?style=flat-square)](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 自动接管浏览器的下载任务: [Chrome Web Store](https://chromewebstore.google.com/detail/fluxdown/meleenglfggcmcajknpeeeiobnpfmahc) [Edge Add-ons](https://microsoftedge.microsoft.com/addons/detail/fluxdown/nglkkjbogjghekbhhcnccnpfedjbdhhd) [Firefox Add-ons](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, 下载管理器, 可视化界面, 多线程加速, 流媒体下载, 网络流量审计, 请求拦截, 通知系统