Desktop downloader
Go to file
Sucukdeluxe d7162592e0 Release v1.4.21 with download engine performance optimizations
- Cache itemCount as class property instead of O(n) Object.keys().length on every emit/persist/UI update
- Eliminate redundant iteration: hasQueuedItems now delegates to findNextQueuedItem
- Remove expensive cloneSession from getSnapshot (IPC serialization handles the copy)
- Increase speed events compaction threshold (50 → 200) to reduce array reallocations
- Time-based UI emit throttling instead of per-percent progress checks
- Avoid Array.from allocation in global stall watchdog
- Optimize markQueuedAsReconnectWait to iterate only run items instead of all items
- Cache pathKey computation in claimTargetPath loop (avoid path.resolve per iteration)
- Use packageOrder.length instead of Object.keys(packages).length in getStats

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 06:49:55 +01:00
.github/workflows Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
assets Update app icon and bump version to 1.0.7 2026-02-26 23:45:56 +01:00
installer Harden updater and add icon-based installer release pipeline 2026-02-26 23:36:30 +01:00
scripts Remove legacy Python artifacts from repository 2026-02-27 16:32:01 +01:00
src Release v1.4.21 with download engine performance optimizations 2026-02-28 06:49:55 +01:00
tests Fix auto-rename double-episode bug and add 62 rename tests 2026-02-28 06:34:46 +01:00
.gitignore Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
package-lock.json Release v1.4.19 with 4SF/4SJ auto-rename support 2026-02-28 05:50:14 +01:00
package.json Release v1.4.21 with download engine performance optimizations 2026-02-28 06:49:55 +01:00
README.md Remove legacy Python artifacts from repository 2026-02-27 16:32:01 +01:00
tsconfig.json Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00
vite.config.mts Fix electron-builder: remove type:module, use vite.config.mts instead 2026-02-28 06:28:45 +01:00
vitest.config.ts Migrate app to Node Electron with modern React UI 2026-02-27 03:25:56 +01:00

Real-Debrid Download Manager (Node/Electron)

Desktop-App auf Node.js + Electron + React + TypeScript mit JDownloader-Style Workflow, optimiert fuer Real-Debrid.

Highlights

  • Modernes, dunkles UI mit Header-Steuerung (Start, Pause, Stop, Speed, ETA)
  • Tabs: Linksammler, Downloads, Settings
  • Paketbasierte Queue mit Datei-Status, Progress, Speed, Retries
  • Paket-Abbruch waehrend laufender Downloads inklusive sicherem Archiv-Cleanup
  • .dlc Import (Dateidialog und Drag-and-Drop)
  • Session-Persistenz (robustes JSON-State-Management)
  • Auto-Resume beim Start (optional)
  • Reconnect-Basislogik (429/503, Wartefenster, resumable priorisiert)
  • Integritaetscheck (SFV/CRC32/MD5/SHA1) nach Download
  • Auto-Retry bei Integritaetsfehlern
  • Cleanup-Trigger fuer fertige Tasks:
    • Nie
    • Sofort
    • Beim App-Start
    • Sobald Paket fertig ist

Voraussetzungen

  • Node.js 20+ (empfohlen 22+)
  • Windows 10/11 (fuer Release-Build)
  • Optional: 7-Zip/UnRAR fuer RAR/7Z Entpacken

Installation

npm install

Entwicklung

npm run dev

Build

npm run build

Danach liegen die Artefakte in:

  • build/main
  • build/renderer

Start (Production lokal)

npm run start

Tests

npm test
npm run self-check
  • npm test: Unit-Tests fuer Parser/Cleanup/Integrity
  • npm run self-check: End-to-End-Checks mit lokalem Mock-Server (Queue, Pause/Resume, Reconnect, Paket-Cancel)

Projektstruktur

  • src/main: Electron Main Process + Download/Queue Logik
  • src/preload: sichere IPC Bridge
  • src/renderer: React UI
  • src/shared: gemeinsame Typen und IPC-Channel
  • tests: Unit- und Self-Check Tests

Hinweise

  • Runtime-Dateien liegen im Electron userData Verzeichnis:

    • rd_downloader_config.json
    • rd_session_state.json
    • rd_downloader.log
  • Das Repository enthält jetzt nur noch die aktive Node/Electron-Codebasis.