Free & open source · MIT licensed

Downloads that use every bit of your connection.

ZDM splits every file across multiple connections and pulls them all at once, so total throughput isn't capped by a single connection's speed. A native Rust engine, a small fast desktop shell — no bundled browser runtime.

fetching latest version…

Windows macOS Linux (deb / rpm / AppImage)
GitHub stars
MIT License
Rust Core engine
3 Platforms supported
Build status
Features

Built for throughput, not just a progress bar.

Multi-connection segmented downloads

Splits files into chunks pulled by N concurrent connections for maximum throughput.

Genuine per-connection progress

The UI shows exactly what each active connection is doing, straight from the engine's own telemetry.

Resumable transfers

Survive an app restart, a lost connection, or a manual pause, and continue exactly where they left off.

Queues

Group downloads together with their own concurrency limit and bulk pause/resume.

Batch downloading

Expand a numbered URL pattern into a full queue of files in one step.

Auto-categorized folders

New downloads are sorted into the right folder by file type, automatically.

Native and lightweight — a Rust core with a small, fast desktop shell; no bundled browser runtime.

Download

Grab the latest build for your platform.

Loading the latest release from GitHub…

Builds are currently unsigned. Windows SmartScreen and macOS Gatekeeper will show a warning on first launch — choose "More info → Run anyway" (Windows) or right-click → Open (macOS).

Architecture

A Tauri app — Rust core, native webview UI.

A Rust backend with a native OS webview for the UI, rather than a bundled browser runtime.

crates/zdm-core/

The download engine — pure Rust, no GUI dependency. Probes a URL for range support, splits the file into small chunks, and hands them out to N concurrent workers pulling from a shared queue. Persists enough state (<file>.zdm.json) to resume after a restart, and validates the remote hasn't changed (via ETag/Last-Modified) before trusting old progress. Has its own test suite that runs against a real local HTTP server — no mocked network layer.

src-tauri/

The Tauri backend — turns engine events into app-level DownloadRecords, runs the queue scheduler (which downloads get a connection slot), persists history/queues/settings to a local SQLite database, and exposes commands to the frontend.

src/

The React + TypeScript UI — hand-rolled CSS design tokens, no component framework, so every pixel matches the app's own visual identity rather than a generic design system's defaults.

Development

Build it yourself in four commands.

Terminal
# clone and run in dev mode
git clone https://github.com/thisisroot/zdm.git
cd zdm
npm install
npm run tauri dev
  • Rust (MSVC toolchain — the default rustup install)
  • Node.js 20+
  • Visual Studio Build Tools with the "Desktop development with C++" workload
  • WebView2 Runtime (preinstalled on Windows 10/11)
  • Rust
  • Node.js 20+
  • Xcode Command Line Tools (xcode-select --install)
sudo apt update
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
  libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev pkg-config libdbus-1-dev

Build an installer

npm run tauri build

Run tests

cargo test --workspace npx tsc -b

Issues and pull requests are welcome. For anything nontrivial, please open an issue first to discuss the approach before sending a PR.

If ZDM saves you time, it's free to say thanks.

Starring the repo helps other people discover the project and costs you nothing but a click.

Contact

Questions, feedback, or a bug that isn't on GitHub yet?

Send a message straight to my inbox — this opens your email client with everything pre-filled.

or email directly: zed@zeddm.ir