Skip to content

JyotismoyKalita/JDA

Repository files navigation

JDA - Jyotismoy's Download Accelerator

JDA Logo
High-performance, multi-threaded download management built with Rust.


Overview

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.

Key Features

  • 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.

Tech Stack

  • 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)

Getting Started

Prerequisites

Installation & Development

  1. Clone the Repo:

    git clone [https://github.com/JyotismoyK/jda.git](https://github.com/JyotismoyK/jda.git)
    cd jda
  2. Install Frontend Dependencies:

    npm install
  3. Run in Development Mode:

    cargo-tauri dev
  4. Build Production Installer:

    cargo-tauri build

Browser Integration

To unlock the full potential of JDA, use the JDA Browser Extension:

  1. Load the extension from the src directory (unpacked mode).
  2. Toggle the accelerator to Active.
  3. Clicking any download link in your browser will now automatically hand over the request to JDA's local server (with deep-link fallback).

Preview

Preview

Roadmap

  • 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.

Contributing

As a project in active development, contributions are highly encouraged!

  1. Fork the project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes (git commit -m 'Add some AmazingFeature').
  4. Push to the branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

License

Distributed under the MIT License. See LICENSE for more information.


Author

Jyotismoy Kalita

About

Download Manager built in Rust backend and React Frontend with Tauri

Topics

Resources

License

Stars

Watchers

Forks

Contributors