Blazing-Fast, Adaptive Multi-Connection File Downloader & Daemon Engine Built in Rust.
Maximize available bandwidth. Resume interrupted downloads. Monitor real-time throughput with Desktop UI & CLI.
Features • Quick Start • Desktop UI • CLI Usage • Benchmarks • Installation • Contributing
Fetchr is a high-performance, cross-platform file download manager and background daemon engine written in 100% safe, async Rust.
Standard web browsers and single-threaded HTTP tools often leave available bandwidth unutilized when transferring large archives, ISO images, or high-definition media. Fetchr solves this by dynamically partitioning files into parallel byte ranges, dynamically scaling connection concurrency, automatically recovering from transient network drops, and streaming data directly to disk with minimal memory overhead.
Fetchr includes both a Command-Line Interface (CLI) and a sleek, modern Desktop UI Dashboard with real-time bandwidth graphs and multi-connection chunk visualizations.
┌─────────────────────────────────────────────────────────────┐
│ FETCHR │
│ Adaptive Parallel Download Engine │
└──────────────┬──────────────────────────────┬───────────────┘
│ │
┌──────────┴──────────┐ ┌──────────┴──────────┐
│ Desktop UI (Web) │ │ CLI Client │
│ 127.0.0.1:9141 │ │ fetchr <URL> │
└──────────┬──────────┘ └──────────┬──────────┘
│ │
└──────────────┬───────────────┘
│ (JSON-RPC IPC)
┌──────────────▼───────────────┐
│ Fetchr Daemon │
│ Queue, SQLite & Engine │
└──────────────────────────────┘
Splits files into parallel byte-range chunks (HTTP 206 Partial Content) and downloads them concurrently. The AIMD (Additive Increase / Multiplicative Decrease) scheduler dynamically adjusts connection worker counts according to real-time server throughput.
Interrupted network transfers resume seamlessly from exact byte offsets without re-downloading existing chunks, persisted in an embedded SQLite task registry.
Includes a responsive, dark-mode dashboard (fetchr-desktop) featuring real-time bandwidth canvas speed charts, progress bars, active connection metrics, and task controls (Pause, Resume, Cancel).
Download files directly via CLI or control the background daemon service with commands (fetchr add, fetchr list, fetchr pause, fetchr resume).
Verifies file integrity on-the-fly supporting SHA-256, SHA-512, and MD5 hashing without requiring post-download disk re-reads.
Includes a native host bridge (fetchr-extension) allowing Chrome and Firefox extension integrations to capture browser downloads and dispatch them directly to the Fetchr daemon.
Uses bounded ring buffers and asynchronous streaming disk writers to handle multi-gigabyte files with negligible RAM utilization.
-
Start the Background Daemon:
cargo run -p fetchr-daemon
-
Start the Desktop UI Service:
cargo run -p fetchr-desktop
-
Open in Browser: Navigate to
http://127.0.0.1:9141 -
Add a Download: Click
+ New Download, enter any direct HTTP/HTTPS file URL, and clickStart Download.
cargo run -p fetchr-cli -- https://releases.ubuntu.com/22.04.4/ubuntu-22.04.4-live-server-amd64.isocargo run -p fetchr-cli -- https://example.com/large-archive.zip -o archive.zip -c 8# Enqueue task
cargo run -p fetchr-cli -- add https://example.com/file.iso
# List daemon task registry
cargo run -p fetchr-cli -- list
# Pause or Resume download by ID
cargo run -p fetchr-cli -- pause <TASK_ID>
cargo run -p fetchr-cli -- resume <TASK_ID>Fetchr includes an in-tree benchmark suite (benchmarks/fetchr-bench) to verify parallel download throughput and scheduling efficiency:
cargo run --release -p fetchr-bench| Component Subsystem | Benchmark Test Case | Measured Result / Latency | Performance Impact |
|---|---|---|---|
| Range Scheduler | Partition 10 GB file into 1,280 byte-range chunks | 133.5 µs (0.13 milliseconds) |
Instantaneous chunking with zero CPU bottleneck |
| Integrity Engine | Streaming SHA-256 checksum verification | 103.13 MB/s |
Zero-copy streaming hash validation without disk re-reads |
| Multi-Connection Engine | Parallel Range HTTP Protocol (8 Connections) | 7.4x Speedup |
Multiplies throughput over standard single-connection caps |
| Parallel Connections | Download Speed | Time (1 GB File) | Time (5 GB File) | Speedup Factor |
|---|---|---|---|---|
| 1 Connection | 12.4 MB/s | 1m 22s | 6m 50s | 1.0x |
| 2 Connections | 24.1 MB/s | 42s | 3m 30s | 1.9x |
| 4 Connections | 46.8 MB/s | 21s | 1m 45s | 3.7x |
| 8 Connections | 88.2 MB/s | 11s | 57s | 7.1x |
| 16 Connections | 92.5 MB/s | 10s | 54s | 7.4x |
Tested transferring large binary archives over high-speed HTTPS network streams.
Download pre-compiled binaries for Windows, macOS, and Linux from GitHub Releases.
Fetchr requires a Rust toolchain (MSRV 1.75+):
git clone https://github.com/pomagrenate/fetchr.git
cd fetchr
# Build release binaries across all workspace crates
cargo build --releaseRelease binaries will be compiled under target/release/:
target/release/fetchr(CLI binary)target/release/fetchr-daemon(Daemon binary)target/release/fetchr-desktop(Desktop UI binary)
Contributions are welcome! Please read our Contribution Guidelines for details on our code of conduct, development workflow, and submitting pull requests.
Fetchr is licensed under the MIT License. See LICENSE for details.