FluxDown: 빠르고 다기능 다운로드 매니저
요약
FluxDown은 Rust와 Tokio 엔진을 기반으로 개발된 빠르고 다기능한 오픈 소스 다운로드 관리자입니다. HTTP/FTP, BitTorrent 등 다양한 프로토콜을 지원하며, 데스크톱, 모바일, 웹 등 여러 클라이언트를 하나의 엔진으로 구동합니다. 특히 AI 에이전트가 다운로드를 관리할 수 있도록 MCP(Model Context Protocol) 서버를 내장하고 있어 미래 확장성이 뛰어납니다.
핵심 포인트
- Rust + Tokio 기반의 빠르고 안정적인 핵심 엔진 제공
- HTTP, FTP, BitTorrent 등 다중 프로토콜 지원 및 스마트 세분화 기능 구현
- 데스크톱/모바일/웹을 아우르는 크로스 플랫폼 구조와 브라우저 통합 기능
- AI 에이전트 연동을 위한 MCP 서버 내장으로 확장성 확보

빠르며 여러 프로토콜을 지원하는 다운로드 관리자 — 무료 오픈 소스 IDM 대안.
웹사이트 · 다운로드 · 변경 로그 · FAQ · 피드백
English | 简体中文
동적 다운로드 가속화(Dynamic download acceleration) — 적응형 세분화 및 느린 세그먼트 복구 기능을 갖춘 Rust + Tokio 엔진
다중 프로토콜(Multi-protocol) — HTTP/HTTPS, FTP, BitTorrent, eD2K, HLS & DASH 스트리밍
하나의 엔진, 여러 클라이언트(One engine, multiple clients) — 네이티브 GPUI 데스크톱, Flutter 안드로이드 앱, React 웹 UI 및 CLI
브라우저 통합(Browser integration) — 3계층 가로채기 엔진을 갖춘 Chrome / Edge / Firefox 확장 프로그램 및 사용자 스크립트
AI 에이전트 준비 완료(AI-agent ready) — 내장 MCP (Model Context Protocol) 서버: Claude, Cursor 및 기타 AI 클라이언트가 다운로드를 관리할 수 있도록 지원
자동화 및 원격 관리(Automation & remote management) — RSS 구독, 예약 큐, 웹훅, 플러그인 및 선택적 FluxCloud 장치 협업
로컬 우선(Local-first) — 무료 오픈 소스이며 광고가 없고 로컬 다운로드에 계정이 필요하지 않음; 재개 가능한 상태는 기본적으로 로컬에 저장됨
| 기능 | 설명 |
|---|---|
| Rust 기반 엔진 | 공유 Rust + Tokio 엔진으로, UI 및 FFI와 독립적이며 데스크톱, 모바일, 서버 및 독립형 CLI 호스트에서 사용됨 |
| 스마트 세분화 | 런타임에 동적으로 세그먼트가 분할되며, 유휴 워커가 느린 세그먼트를 처리함 |
| 다중 프로토콜 | HTTP/HTTPS, FTP, BitTorrent (DHT/UPnP/magnet), eD2K (서버 + Kad DHT 소스 찾기, MD4 검증) 및 DASH에 대한 전용 엔진이 있음 |
| 큐 및 속도 제어 | 이름 지정된 큐, 스케줄링 및 토큰 버킷 글로벌 속도 제한 |
| 지속성 및 재개 | 기본적으로 WAL을 사용하는 SQLite; 서버 배포는 PostgreSQL 사용 가능; 지속된 상태에서 다운로드 복구 가능 |
| 브라우저 통합 | 다운로드 가로채기, 스트리밍 미디어 스니핑, Alt+Click 우회, 마우스 오른쪽 버튼 클릭 전송 및 연결 진단 |
| 데스크톱 및 웹 UI | GPUI 데스크톱 및 React 웹 관리, 라이트/다크 테마, 사용자 지정 테마, 작업 세부 정보 및 세그먼트 시각화; 데스크톱 트레이는 UI가 닫힌 후에도 서비스를 유지함 |
| RSS & 자동화 |
피드 필터, 비감시 다운로드(unattended downloads), JavaScript 플러그인, 관리되는 FFmpeg/yt-dlp 컴포넌트 및 작업-이벤트 웹훅을 지원합니다 | 원격 장치 | 선택적 FluxCloud 계정, 설정 동기화 및 원격 작업 관리 기능에 더해 LAN 장치 페어링 및 직접 연결도 가능합니다 | API 및 CLI | REST/OpenAPI, aria2와 호환되는 JSON-RPC, 12가지 도구를 갖춘 MCP, 그리고 스크립트 또는 독립형 다운로드를 위한 CLI를 제공합니다
개인 정보 보호: 로컬 다운로드는 FluxCloud 계정이 필요하지 않습니다. 클라우드 기능은 선택 사항입니다. 익명 설치 및 일일 활동 통계는 analytics_enabled에 의해 제어되며 비활성화할 수 있습니다. 이들은 다운로드/작업 정보를 수집하지 않으며, 본 애플리케이션은 제로-텔레메트리(zero-telemetry) 애플리케이션이 아닙니다.
| FluxDown | IDM |
|---|---|
| 가격 | 무료 및 오픈 소스 |
| 오픈 소스 | 예 (AGPL-3.0) |
| 플랫폼 | Windows / macOS / Linux / NAS / Android |
| BitTorrent 및 magnet | 예 |
| ... | — |
GitHub Releases 또는 fluxdown.zerx.dev에서 최신 빌드를 받아보세요:
| 플랫폼 | 패키지 |
|---|---|
| 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) | per-ABI .apk · 범용 .apk |
| NAS / 서버 (헤드리스, x64 / ARM64) | Docker · Synology DSM 6/7 .spk · QNAP .qpkg · OpenWrt .ipk · Unraid CA template · CasaOS / ZimaOS 앱 스토어 |
FluxDown이 브라우저 다운로드를 자동으로 처리하도록 확장 프로그램을 설치하세요:
이 확장 프로그램은 Native Messaging을 통해 데스크톱 에이전트에 연결됩니다. Tampermonkey 사용자 스크립트도 사용할 수 있습니다.
현재 헤드리스 서비스는 임베디드 웹 UI와 함께 fluxdown-agent --server + fluxdownd이며, Docker 이미지는 ghcr.io/zerx-lab/fluxdown-server 이름을 유지합니다. 체크아웃(checkout)의 경우 제공된 Compose 구성을 사용하세요:
docker compose -f docker/docker-compose.yml up -d
http://<서버>:17800/에서 접속하세요.
그리고 최초 실행 마법사(first-run wizard)에서 액세스 키를 설정해야 합니다. 이 키는 문자와 숫자를 모두 포함하여 8~128개의 보이는 ASCII 문자를 포함해야 합니다. 서비스를 외부에 노출하기 전에 신뢰하는 네트워크에서 이를 설정하고, 원격 액세스를 위해서는 HTTPS 리버스 프록시를 사용하십시오.
- 서버 모드는 기본적으로
0.0.0.0:17800에서 수신 대기하며, 이는FLUXDOWN_BIND로 재정의할 수 있습니다. - 비대면 설정(unattended setup)을 위해서는 커밋된 파일이 아닌 배포 환경 또는 비밀 관리자(secret manager)를 통해
FLUXDOWN_TOKEN을 제공하십시오. 이 토큰은 키가 이미 설정되지 않은 경우에만 초기화합니다. - 데이터베이스, 로그 및 액세스 키는
/data에 영구 저장하고, 다운로드 파일은/root/Downloads에 저장합니다. 제공된 Compose 파일은 이름이 지정된 데이터 볼륨을 사용하며 호스트의docker/downloads/를 사용합니다. - 다운로드 디스크가 절전 모드(sleep)로 들어가야 하는 경우
/data에 SSD/캐시 스토리지를 사용하는 것이 좋습니다. - 네이티브 배포(Native deployments)의 경우,
fluxdown-agent와fluxdownd는 같은 디렉터리에 보관해야 합니다. 이전 버전인native/server크레이트는 더 이상 사용되지 않으며 배포 진입점(deployment entry point)이 아닙니다.
fluxdown CLI는 기본적으로 실행 중인 데스크톱 또는 서버 HTTP API에 연결합니다. 데스크톱 환경에서는 먼저 설정(Settings) → API 서비스에서 관리 API를 활성화하십시오. 액세스 키는 FLUXDOWN_TOKEN을 통해 제공하고, 원격 서버를 선택하려면 FLUXDOWN_URL 또는 --url을 사용하십시오.
fluxdown ping
fluxdown add "https://example.com/file.zip"
fluxdown --json list
...
독립 실행 모드(Standalone mode)는 데이터 디렉터리를 실행 중인 엔진과 공유할 수 없습니다. 먼저 해당 디렉터리를 사용하는 서비스를 중지하십시오.
| 인터페이스 | 엔드포인트 | 용도 |
|---|---|---|
| REST 관리 API | /api/v1/* | 작업(Tasks), 큐(queues), RSS 및 기타 관리 작업 |
| OpenAPI | /api/v1/openapi.json | 기계가 읽을 수 있는 API 스키마 |
| aria2-호환 JSON-RPC | /jsonrpc (HTTP / WebSocket) | aria2 호환 클라이언트와의 통합 |
| MCP | /mcp | AI 에이전트 도구 |
| 공식 UI 프로토콜 | /rpc (WebSocket) | GPUI/웹 게이트웨이; aria2 API와는 다름 |
데스크톱은 기본적으로 127.0.0.1:17800을 사용합니다.
, 관리 API와 MCP가 활성화되지 않은 상태에서는 비활성화됩니다. 서버 모드는 둘 다 기본적으로 활성화하며 접근 키를 필요로 합니다. REST 계약에 대한 OpenAPI 사양을 참조하십시오.
FluxDown은 내장된 MCP 서버를 제공하여 AI 에이전트(Claude Desktop, Cursor, Cline 등)가 Model Context Protocol을 통해 다운로드를 관리할 수 있게 합니다. 이는 동일한 API 포트에서 상태 비저장형 Streamable HTTP 서브셋(POST /mcp를 통한 JSON-RPC 2.0)을 구현하며 별도의 MCP 프로세스가 필요하지 않습니다.
엔드포인트: 기본 데스크톱 구성의 경우 http://127.0.0.1:17800/mcp를 사용하고, 헤드리스 배포 시에는 서버 주소를 사용하십시오.인증: 관리 API와 공유되는 Bearer 토큰(Authorization: Bearer <토큰> 또는 X-FluxDown-Token)을 사용합니다.활성화: 설정(Settings) → API 서비스(API Service) → MCP 엔드포인트를 토글(토큰은 자동으로 생성됨); 헤드리스 서버는 기본적으로 이를 활성화합니다.
| 도구 (Tool) | 설명 (Description) |
|---|---|
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 | 이름이 지정된 큐와 해당 구성 목록 |
rss_list | RSS 구독과 해당 구성 및 실행 상태 목록 |
rss_add |
rss_remove | RSS 구독 및 수집한 항목을 삭제합니다. |
{
"mcpServers": {
"fluxdown": {
...
MCP 레이어는 동일한 ApiHost 트레이트 위에 구현되어 있으며, 이 트레이트는 REST 관리 API와 aria2 호환 JSON-RPC를 구동합니다.
하나의 Rust 다운로드 엔진으로 여러 호스트 및 클라이언트 지원. 데스크톱 릴리스는 Flutter가 아닌 GPUI를 사용합니다. 데스크톱 체인은 fluxdown-desktop → fluxdown-agent → fluxdownd입니다.
헤드리스 배포(headless deployments)는 에이전트와 데몬을 React Web UI와 함께 재사용합니다. Flutter는 Rinf를 통해 해당 hub에 연결된 모바일 클라이언트로 남아 있습니다.
flowchart TD
UI["GPUI desktop"] -->|"WebSocket /rpc"| AGENT["fluxdown-agent — UI 게이트웨이 및 데스크톱 셸"]
WEB["React Web UI"] -->|"WebSocket /rpc"| AGENT
...
데몬(Daemon)의 역할: 다운로드 엔진, 다운로드 데이터베이스, 큐(queues), RSS, 플러그인 및 웹훅을 소유합니다.
에이전트(Agent)의 역할: UI 게이트웨이, FluxCloud 계정/동기화, 장치 협업, 브라우저 캡처 및 데스크톱 트레이/라이프사이클을 소유합니다.
공유 계약 (Shared contracts): native/protocol은 전송에 독립적인 DTO(Data Transfer Objects), 메서드 및 이벤트를 정의하며, native/api는 엔진에 의존하지 않고 ApiHost를 통해 REST, aria2 및 MCP를 노출합니다.
엔진 독립성 (Engine independence): EventSink와 HostSelection은 엔진을 호스트에 연결합니다. 데이터 디렉토리에 동시에 쓸 수 있는 엔진은 하나뿐이며, 다이어그램은 동시 작성자가 아닌 대안적인 호스트들을 보여줍니다.
| 레이어 | 기술 | 경로 |
|---|---|---|
| 데스크톱 UI | Rust + GPUI; 앱 구성 및 기능 크레이트 (capability crates) | crates/ , crates/app/ |
| ... | website-v2/ |
Rust 툴체인과 플랫폼별 네이티브 빌드 도구(Windows의 MSVC, macOS의 Xcode command-line tools)로 시작합니다. Linux 데스크톱 빌드에는 그래픽, 오디오 및 트레이 개발 라이브러리가 필요하며, 유지 관리되는 Ubuntu 패키지 목록은 CI에 있습니다. Web UI를 위해서는 Bun이 필요하고, Flutter와 Rinf는 모바일 전용이며 GPUI 데스크톱에서는 필요하지 않습니다.
# 개발 브랜치를 클론합니다 (main = 활성 개발, stable = 안정화 릴리스)
git clone -b main https://github.com/zerx-lab/FluxDown.git
cd FluxDown
# 데스크톱 UI, 에이전트, 데몬 및 브라우저 릴레이를 빌드한 다음 실행합니다
cargo desktop-dev
# 빌드만 수행합니다 (macOS에서 서명된 개발용 .app도 스테이징됩니다)
...
런처는 기존의 데스크톱/서비스 인스턴스를 강제로 재시작하는 대신 재사용합니다. 코드를 변경하여 테스트하기 전에 UI를 종료하고 서비스가 중지되었는지 확인하십시오.
Web UI를 먼저 빌드하고 에이전트를 구축하세요
cd web
bun install --frozen-lockfile
...
The web-ui
feature는 컴파일 시간에 web/dist 디렉터리를 에이전트 바이너리에 포함합니다. 프론트엔드를 변경한 후에는 Web UI와 에이전트를 다시 빌드해야 합니다. FLUXDOWN_WEBROOT 옵션을 사용하면 대신 디스크의 특정 디렉터리를 서비스할 수 있습니다.
프론트엔드 개발을 위해서는 서버를 실행하는 동안 두 번째 터미널에서 cd web && bun run dev를 실행하세요: Vite는 5173 포트에서 리스닝하며 백엔드 요청을 17800 포트로 프록시합니다.
cargo build -p fluxdown_cli
cargo run -p fluxdown_cli -- ping
Flutter SDK와 Android SDK(또는 iOS 개발의 경우 Xcode)를 설치하세요.
cargo install rinf_cli
flutter pub get
rinf gen
...
Android APK는 CI에서 게시합니다. iOS 소스는 존재하지만, 현재 iOS 릴리스 작업은 없습니다. Flutter 데스크톱 러너는 더 이상 데스크톱 빌드에 포함되지 않습니다.
테스트 실행하기
cargo test -p fluxdown_engine # 엔진 테스트
cargo test -p fluxdown_api # HTTP / aria2 / MCP 계약
cargo test -p fluxdown_agent # 게이트웨이 / 서버
...
버그 보고 / 기능 요청— GitHub Issues 또는 앱 내 피드백 대화창QQ Group— 832143651
풀 리퀘스트(Pull requests)는 환영합니다! main에서 브랜치를 분기하고 main을 대상으로 하세요 — 이곳은 개발 브랜치이며, stable은 안정화된 릴리스만 추적합니다 (유지보수자가 main에서 업데이트합니다). 제출하기 전에 다음 사항을 확인하세요:
cargo fmt --check
cargo clippy --workspace --exclude fluxdown_server --all-targets -- -D warnings
flutter analyze # 모바일 Dart 코드를 변경할 때
전체 워크플로우는 CONTRIBUTING.md를 참조하세요.
GNU Affero General Public License v3.0에 따라 배포됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기