Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

mpiton/vortex

Repository files navigation

Vortex

Release License: GPL v3 Built with Tauri Rust CI CodSpeed

Open-source desktop download manager — successor to JDownloader. Tauri 2 + Rust backend + React 19 frontend, hexagonal architecture, CQRS, WASM plugin system (Extism).

Status: v0.2.0-beta (2026年04月28日). Phase 0 of the v2 roadmap shipped — every UI view is wired to a real backend, integrity checking via SHA-256/MD5, dynamic segment splitting, queue reorder, change directory, plugin config UI, history/statistics dashboards. Targeted at testers; REST API, browser extension and headless CLI are deferred to v0.3+. See CHANGELOG.md for the full feature list and PRD-v2.md for the v1.0 roadmap.

Install (v0.2.0-beta)

⚠️ Beta binaries on macOS and Windows ship unsigned. First-launch Gatekeeper / SmartScreen warnings are expected — see the per-platform notes below to bypass them.

Linux

Format Command
Debian / Ubuntu (.deb) wget https://github.com/mpiton/vortex/releases/download/v0.2.0-beta/Vortex_0.2.0-beta_amd64.deb && sudo dpkg -i Vortex_0.2.0-beta_amd64.deb
Fedora / RHEL (.rpm) sudo rpm -i https://github.com/mpiton/vortex/releases/download/v0.2.0-beta/Vortex-0.2.0-beta-1.x86_64.rpm
Portable (.AppImage) wget https://github.com/mpiton/vortex/releases/download/v0.2.0-beta/Vortex_0.2.0-beta_amd64.AppImage && chmod +x Vortex_*.AppImage && ./Vortex_*.AppImage
Flatpak flatpak install --user vortex.flatpak (download from the release page)

macOS (universal — Apple Silicon + Intel)

curl -LO https://github.com/mpiton/vortex/releases/download/v0.2.0-beta/Vortex_0.2.0-beta_universal.dmg
open Vortex_0.2.0-beta_universal.dmg
# Drag Vortex.app to /Applications
# First launch: right-click Vortex.app → Open → Open (bypasses Gatekeeper)

If macOS blocks with "cannot be opened because the developer cannot be verified":

xattr -dr com.apple.quarantine /Applications/Vortex.app

Windows

Format Notes
MSI installer Vortex_0.2.0-beta_x64_en-US.msi — recommended for system-wide install
NSIS setup Vortex_0.2.0-beta_x64-setup.exe — per-user install

SmartScreen will warn "Windows protected your PC" → click More infoRun anyway.

Features (v0.2.0-beta)

  • Segmented downloads — parallel HTTP Range workers with dynamic split (slow-tail rebalancing) and .vortex-meta resume across restarts
  • Queue manager — drag-and-drop reorder, Move-to-top / -bottom, priority-aware scheduling, configurable concurrency (1-20)
  • Integrity — SHA-256 / MD5 verification on completion, mismatch surfaces with expected vs. computed hash
  • History view — group-by-day, filter tabs, debounced search, CSV / JSON export, retention purge worker (7 / 30 / 90 / 365 / unlimited days)
  • Statistics view — daily volume, top hosts, type breakdown, average speed, top modules — over 7d / 30d / all-time periods
  • WASM plugin system — install / hot-reload / configure crawlers from a built-in registry (YouTube, Vimeo, SoundCloud, Gallery shipped); typed config UI per plugin
  • Tray — pulse animation while transfers active; Pause / Resume / Quit shortcuts
  • Notifications — completion shows {filename} · {size}, failure shows {filename} · Error: {reason}, 5s grouper for bursts
  • Auto-updater — Tauri-signed updater bundle published on every release; in-app dialog prompts when a new version ships

The full PRD-v2 §P0 acceptance matrix is in docs/PRD.md and the v1.0 roadmap in PRD-v2.md.

Architecture

Hexagonal + CQRS, dependency rule adapters/ → application/ → domain/:

src-tauri/src/
├── domain/ # Pure entities (Download, Segment, Package...), state machine,
│ # domain events, ports (traits). ZERO external deps.
├── application/ # Command Handlers (mutations) + Query Handlers (reads),
│ # CommandBus / QueryBus, async services.
└── adapters/
 ├── driving/ # Tauri IPC, REST axum (planned), CLI (planned)
 └── driven/ # SQLite (sea-orm), filesystem, reqwest, Extism, keyring,
 # clipboard, tray, notifications, scheduler

Plugin runtime: Extism sandbox. Each plugin is a .wasm + plugin.toml manifest declaring capabilities. Plugins live in ~/.local/share/dev.vortex.app/plugins/<name>/ and hot-reload via filesystem watcher.

See ARCHI.md for the full architecture documentation.

Build from source

# Prerequisites
rustup install 1.95.0 # or use the rust-toolchain.toml pin
node --version # 22.x recommended
sudo apt install libwebkit2gtk-4.1-dev build-essential libssl-dev libappindicator3-dev librsvg2-dev # Linux
# Clone + dev
git clone https://github.com/mpiton/vortex.git
cd vortex
npm install
npm run tauri dev
# Release build
npm run tauri build
# Output: src-tauri/target/release/bundle/{deb,rpm,appimage,dmg,msi,nsis}/

A Nix flake is provided for a reproducible toolchain (nix develop).

Plugin development

Plugins are independent crates compiled to wasm32-wasip1. The four official plugins live in sibling repos:

Quickstart for a new plugin:

cargo new --lib vortex-mod-myhost
cd vortex-mod-myhost
# Add Cargo.toml: crate-type = ["cdylib", "rlib"] + extism-pdk dep
# Implement #[plugin_fn] can_handle / extract_links / get_media_variants / ...
cargo build --target wasm32-wasip1 --release
cp target/wasm32-wasip1/release/vortex_mod_myhost.wasm ~/.local/share/dev.vortex.app/plugins/vortex-mod-myhost/plugin.wasm
cp plugin.toml ~/.local/share/dev.vortex.app/plugins/vortex-mod-myhost/
# Hot-reload picks it up; check Plugins view → Installed.

A typed SDK crate (vortex-plugin-sdk) is on the v1.0 roadmap to make this faster.

Roadmap

Version Target Theme
v0.2.0-beta 2026年04月28日 Phase 0 — every placeholder view replaced, integrity, queue UX, plugin config UI
v0.3 2026年07月01日 Phase 1 — Accounts (premium), Packages, file hosters (MEGA, MediaFire, 1fichier...), containers (DLC/CCF/RSDF/Metalink)
v0.4 2026年09月15日 Phase 2 — CAPTCHA pipeline, Real-Debrid / AllDebrid, Scheduler, automation rules, reconnect IP
v1.0 2026年12月15日 Phase 3 — REST API + WebSocket, Web UI, browser extension, Click'n'Load, headless mode, i18n, Flathub

See PRD-v2.md for the per-task breakdown.

Feedback

This is a beta release — bugs, rough edges and missing flows are expected. Two channels:

License

GPL-3.0-only — same as JDownloader's spirit, source-available + copyleft.

Acknowledgements

Built on the shoulders of Tauri, Extism, yt-dlp, shadcn/ui, TanStack Query/Table, and the GNOME / freedesktop runtimes.

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /