Skip to content

Repository files navigation

FDM — Fast Download Manager

FDM — Fast Download Manager

High-speed parallel download acceleration & media streaming manager for Windows.
Free, open source, privacy-first, zero telemetry.

GitHub Release Build Status License: Apache 2.0 Platform Rust Tauri

Quick InstallKey FeaturesArchitectureHow IDM Method WorksBuild from SourceCLI CommandsLicense


The FDM download window: a 5.7 GB file transferring over 32 parallel connections at around 50 MB/s, then finishing.

64 Connection Parallel Download Support.


Note

FDM — Fast Download Manager is an independent, modern, open-source download manager built from the ground up in Rust and Tauri. To prevent confusion with legacy products, it is always identified as FDM — Fast Download Manager.


⚡ Highlights

  • 🚀 32-64 Multi-Connection Acceleration: Splits files into dynamic parallel streams, saturating your bandwidth and eliminating server-side per-connection rate limits.
  • 🎥 Real-Time Video Quality Sniffer: In-browser media overlay on YouTube and web video players with exact resolution detection (4K, 1440p, 1080p, 720p, 480p, 360p, and MP3 audio).
  • ⚡ IDM Direct Stream Handover: Intercepts active CDN streams (googlevideo.com/videoplayback) directly from the browser for instant < 100ms server connections.
  • 📊 60/120 FPS Physics Interpolation (Lerp): Real-time, smooth progress bar movement and continuous speedometer/odometer transfer rate rendering without stuttering.
  • 💾 Direct Sparse File Positional Writes: Writes segments directly into allocated sparse files on disk with zero post-download merge delay or disk thrashing.
  • 🔒 Crash-Proof Resumes: Transactional control files (.fdm) record bytes strictly after durable disk flush. Resumes instantly from exact byte offsets.
  • 🌐 Browser Extension & Policy Auto-Deployment: Native extension bridge supporting Google Chrome, Microsoft Edge, Brave, Vivaldi, and Chromium.
  • 🌍 12 Languages: English, العربية, Deutsch, Español, Français, हिन्दी, Indonesia, Português, Русский, Türkçe, اردو, 中文 — right-to-left included. Follows your Windows language; changeable in Settings.
  • 📂 Drag Finished Files Anywhere: Grab a completed download from the popup or the list and drop it straight into Explorer, the desktop, or another app.
  • 🗂️ A Folder per Category: Send Video to one drive and Documents to another, or redirect a single download before it starts.

🖼️ What it looks like

The FDM main window: a sidebar of categories beside a list of downloads, two transferring with segmented progress bars, two complete and one paused.

The main window — segmented bars show every connection working at once.



The per-download window showing 62.8 percent of 5.7 GB at 48 MB/s over 32 connections, with 45 seconds left.

The per-download window, IDM style — speed, size, time left and where it is going.


📥 Quick Install

Windows One-Click Installer (Recommended)

  1. Download the latest FDM-Setup-*.exe from Latest Releases.
  2. Run the installer (Click Yes when Windows UAC prompts for admin).
  3. Open your browser (Chrome / Edge / Brave). The extension is automatically registered and ready.
Component Automated Installation Details
Program Files Installed to C:\Program Files\FDM
Download Hub Organized under Downloads\FDM\{Video, Music, Compressed, Programs, Documents, Other}
Native Bridge Registers com.fdm.native_host in Windows Registry for Chrome, Edge, and Brave
Media Tools Bundles high-speed extraction engines (yt-dlp.exe, deno.exe, ffmpeg.exe)
System Runtime Detects Microsoft WebView2 runtime; auto-bootstraps silently if missing

🏗️ Architecture

FDM is organized into modular Rust crates and frontend components:

FDM/
├── crates/
│   ├── fdm-core/          ◄── High-performance multi-connection download engine
│   │   ├── probe.rs       ◄── HTTP 206 range validation & remote metadata discovery
│   │   ├── plan.rs        ◄── Dynamic segment splitting & tail-stealing coordinator
│   │   ├── download.rs    ◄── Asynchronous connection pool & retry supervisor
│   │   ├── writer.rs      ◄── Preallocated sparse file writer (positional seek_write)
│   │   ├── state.rs       ◄── Atomic transactional .fdm resume checkpointing
│   │   └── categorize.rs  ◄── Extension, MIME type & magic-byte classification
│   ├── fdm-manager/       ◄── Central download state manager, task queue & media engines
│   ├── fdm-ipc/           ◄── Local named pipe IPC protocol with DACL security
│   ├── fdm-host/          ◄── Native messaging host bridge for browser extensions
│   └── fdm-cli/           ◄── CLI test harness & terminal download utility
│
├── apps/desktop/          ◄── Tauri 2.0 desktop GUI application (HTML/CSS/JS)
│   ├── src-tauri/         ◄── Rust application backend & event dispatch
│   ├── download_dialog.js ◄── 60 FPS sub-frame physics interpolation download dialog
│   └── tokens.css         ◄── Tailored dark-mode design system tokens
│
├── extension/             ◄── Manifest V3 browser integration extension
│   ├── background.js      ◄── Stream sniffer, cookie/header handover & host bridge
│   ├── content.js         ◄── YouTube & HTML5 IDM-style player overlay bar
│   └── content.css        ◄── Media pill styling & resolution selector
│
└── installer/             ◄── Inno Setup Windows installer script (fdm.iss)

🔍 The IDM Direct Stream Method

Traditional download managers launch heavy external scrapers when you click a video, causing 15–20 seconds of connection lag.

FDM uses the Direct In-Browser Stream Handover:

 ┌────────────────────────────────────────────────────────────┐
 │  Chrome / Edge / Brave Browser                             │
 │  Active YouTube HTML5 Player                               │
 └──────────────────────────────┬─────────────────────────────┘
                                │ 1. Intercepts googlevideo.com/videoplayback
                                │ 2. Pre-warms resolutions on page load (0ms menu)
                                ▼
 ┌────────────────────────────────────────────────────────────┐
 │  FDM Browser Extension (MV3)                               │
 │  Extracts direct CDN stream URL & user session headers     │
 └──────────────────────────────┬─────────────────────────────┘
                                │ 3. Native Messaging Bridge (com.fdm.native_host)
                                ▼
 ┌────────────────────────────────────────────────────────────┐
 │  fdm-core Multi-Connection Engine (Rust)                   │
 │  Connects directly to Google CDN with 32 parallel streams  │
 └────────────────────────────────────────────────────────────┘
          ⚡ Instant Connection (< 100ms) • Maximum Line Speed

🛠️ Build from Source

Prerequisites

  • Windows 10 (Build 17763+) or Windows 11
  • Rust (1.80+)
  • Inno Setup 6 (for building the installer)
  • MSVC C++ Build Tools (via Visual Studio Installer)

Steps

# 1. Clone the repository
git clone https://github.com/ahmadfarooq/fdm.git
cd fdm

# 2. Run all unit and integration tests (159 tests)
cargo test --workspace

# 3. Build release binaries
cargo build --release --workspace

# 4. Build the complete standalone Windows setup installer
powershell -ExecutionPolicy Bypass -File .\scripts\build-installer.ps1 -AllowPartial -SkipBuild

The output installer will be generated at:
installer\output\FDM-Setup-<version>.exe


💻 CLI Usage

FDM includes a high-speed CLI tool (fdm.exe) for terminal usage, scripting, and server automation:

# Download with 32 parallel connections
fdm get "https://example.com/largefile.iso" -n 32

# Download to a specific directory without subfolder categorization
fdm get "https://example.com/archive.zip" --out "D:\Downloads" --flat

# Download with custom HTTP headers
fdm get "https://example.com/data.tar.gz" -H "Cookie: session=123" -H "Referer: https://example.com"

# Check SHA-256 integrity hash of a local file
fdm hash "D:\Downloads\largefile.iso"

Command Flags

Flag Description Default
-n, --connections <N> Maximum parallel connections (1–64) 16
--sequential Force single-connection mode (comparison baseline) false
-o, --out <DIR> Target download directory %USERPROFILE%\Downloads\FDM
--flat Save directly in output folder without category subfolders false
--name <NAME> Explicit custom output filename Auto-derived
--sha256 Calculate and print SHA-256 hash upon completion false
-H, --header <K: V> Custom HTTP request header (repeatable) None

Note: This build isn't code-signed yet, so Windows will show "Publisher: Unknown." Click More info → Run anyway. Verify the download with the VirusTotal scan.


📜 License & Attribution

This project is licensed under the Apache License, Version 2.0 — see the LICENSE file for details.

Per Section 4(d) of the Apache License 2.0, all derivative works, redistributions, and public deployments must include attribution to the original author. See the NOTICE file for full details.


Built with high-precision engineering by Ahmad Farooq.

About

FDM is a high-performance, open-source Windows download manager engineered in Rust and Tauri to match and exceed IDM (Internet Download Manager) capabilities with zero ads, zero telemetry, and complete transparency.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages