High-performance, multi-threaded download management built with Rust.
JDA (Jyotismoy's Download Accelerator) is a modern download engine designed to maximize network throughput. Unlike standard browser download managers, JDA utilizes a Dynamic Chunking architecture—dynamically splitting active chunks among worker threads to ensure no thread sits idle, maximizing network throughput and ensuring you get the most out of your bandwidth.
Built using Rust for the core engine and Tauri for a lightweight, native GUI experience, JDA is fast, memory-efficient, and privacy-focused.
- Dynamic Chunking Engine: Splits files into parallel chunks, dynamically redistributing remaining workloads by splitting active chunks when workers complete their tasks to ensure maximum bandwidth saturation.
- Smart Range Probing: Performs range-request detection to determine support for parallel downloads and file splitting.
- Browser Integration: Seamlessly intercepts downloads from Chrome/Edge via a local HTTP server hosted by the JDA desktop app (falling back to a custom
jda://protocol deep link if the server is unreachable). - Smart Interception Toggle: Control exactly when the accelerator is active via the companion browser extension.
- Pause & Resume: Robust state management for interrupted or long-running downloads.
- Native Performance: Zero-cost abstractions provided by Rust with a tiny resource footprint.
- Backend: Rust (Core Logic & Tauri)
- Frontend: React
- Desktop Framework: Tauri (v2.0)
- Communication: Local HTTP Server (
http://127.0.0.1:14732/download) with Custom Protocol (jda://) deep link fallback - Storage:
chrome.storage(Extension side) & Local JSON (App side)
- Rust: Install Rust
- Node.js: Install Node.js (v18 or later)
- WebView2: (usually pre-installed)
-
Clone the Repo:
git clone [https://github.com/JyotismoyK/jda.git](https://github.com/JyotismoyK/jda.git) cd jda -
Install Frontend Dependencies:
npm install
-
Run in Development Mode:
cargo-tauri dev
-
Build Production Installer:
cargo-tauri build
To unlock the full potential of JDA, use the JDA Browser Extension:
- Load the extension from the
srcdirectory (unpacked mode). - Toggle the accelerator to Active.
- Clicking any download link in your browser will now automatically hand over the request to JDA's local server (with deep-link fallback).
- Batch Link Grabbing: Extract and queue all links from a webpage.
- Speed Limiter: Manually cap bandwidth for background tasks.
- Queue Scheduling: Set specific times for heavy downloads to start.
As a project in active development, contributions are highly encouraged!
- Fork the project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.