Important
Motrix Next is now Rayburst. We recommend uninstalling the previous desktop app before installing Rayburst. Settings, tasks and history are not imported; keep your downloaded files. In-app updates may leave both apps installed or retain old shortcuts. Visit the website. Published stable builds may still use the previous name while releases catch up.
Note
Rayburst uses Aria2 Next as its download engine, a maintained aria2 fork that preserves the original interfaces while fixing long-standing issues, moving to CMake, adding native ED2K and HLS/DASH support, and updating modern dependencies.
Every transition and micro-interaction has been carefully tuned to follow Material Design 3 motion guidelines:
- Asymmetric timing — enter animations are slightly longer than exits, giving new content time to land while dismissed content leaves quickly
- Emphasized easing curves — decelerate on enter (
cubic-bezier(0.2, 0, 0, 1)), accelerate on exit (cubic-bezier(0.3, 0, 0.8, 0.15)), replacing genericeasecurves throughout the codebase - Spring-based modals — dialogs use physically-modeled spring animations for a natural, responsive feel
- Consistent motion tokens — all durations and curves are defined as CSS custom properties, ensuring a unified rhythm across 12+ components
- Multi-protocol downloads — HTTP, HTTPS, SFTP, ED2K, BitTorrent, Magnet, and
.torrenttasks - HLS and DASH — Native track selection, subtitles, live recording, resumable media downloads and MP4/MKV output. See media downloads.
- BitTorrent — Selective file download, DHT, peer exchange, encryption controls, metadata caching, GeoIP peer flags, and tracker probing
- Browser extension integration — Embedded Extension API with independent authentication, download confirmation, smart auto-submit, filename hints, referer/cookie forwarding, and real-time controls (Rayburst Connect)
- Safe filename handling — Content-Disposition, RFC 2047, non-UTF-8, percent-encoded, and extensionless URL resolution with path traversal sanitization
- Download organization — Favorite and recent folders, optional file-type categorization, stale-record cleanup, and completed history backed by SQLite
- Concurrent downloads — Independent limits for active tasks, stream connections, and BitTorrent peers
- Speed control — Global and per-task upload/download limits with day-of-week and time-of-day scheduling
- System integration — Tray operation, optional tray speed display, macOS Dock badge/progress, protocol handlers for
magnet://,ed2k://,thunder://, andrayburst:// - Lightweight mode — Destroys the WebView on minimize-to-tray while Rust keeps the engine, task monitor, notifications, history, and extension routing alive
- Notifications and power options — Native task start/complete/failure notifications, keep-awake during downloads, and optional shutdown after completion
- Network controls — Scoped proxy support for downloads, app updates, and tracker updates, plus system proxy detection
- Auto-update channels — Stable, Beta, and Latest Across Channels policies with separate download and install phases
- Diagnostics — Structured logs, exportable diagnostic ZIPs, database integrity checks and Linux GPU rendering fallback
- Personalization — Light/dark/system theme, 10 color schemes, 27 languages, and first-launch system language detection
- Native desktop app — Tauri 2 with a Rust backend
Download the latest release from GitHub Releases.
Download the .dmg installer from Releases:
| Architecture | File |
|---|---|
| Apple Silicon | Rayburst_x.x.x_aarch64.dmg |
| Intel | Rayburst_x.x.x_x64.dmg |
The .app.tar.gz macOS artifacts are published for the Tauri updater.
Tip
If macOS says the app is "damaged and can't be opened", see the FAQ below.
Download the installer from Releases:
| Architecture | File |
|---|---|
| x64 (most PCs) | Rayburst_x.x.x_x64-setup.exe |
| ARM64 | Rayburst_x.x.x_arm64-setup.exe |
Run the installer — it takes about 10 seconds, no reboot required.
Download directly from Releases:
Debian / Ubuntu:
sudo dpkg -i Rayburst_x.x.x_amd64.debFedora / RHEL:
sudo rpm -i Rayburst-x.x.x-1.x86_64.rpmOther distributions — use the .AppImage:
chmod +x Rayburst_x.x.x_amd64.AppImage
./Rayburst_x.x.x_amd64.AppImageAll formats are available for both x64 and ARM64.
Flatpak (FlatPark, x64):
FlatPark provides a developer-approved, community-maintained Flatpak package.
flatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo
flatpak install flatpark dev.aninsomniacy.rayburstUpdate with flatpak update dev.aninsomniacy.rayburst; the in-app updater cannot update this package. Start Rayburst manually before connecting Rayburst Connect; the package does not register the browser's native-messaging host. See the package page for sandbox permissions and packaging support.
macOS says the app is "damaged and can't be opened"
This app is not code-signed. Open Terminal and run:
xattr -dr com.apple.quarantine /Applications/Rayburst.appThis removes only Gatekeeper's quarantine attribute. Run it again after each upgrade.
Why is there no portable version?
Rayburst relies on Aria2 Next as its download engine and launches it through a bundled aria2-next sidecar process at runtime. The sidecar binaries are built and released from the aria2-next repository for all 6 supported desktop targets. This architecture means:
- The Aria2 Next sidecar binary must exist alongside the main executable — it cannot be embedded into a single
.exe. - Deep links (
magnet://,ed2k://,thunder://) and file associations (.torrent) require Windows registry entries that only an installer can configure. - The auto-updater needs a known installation path to replace files in place.
These are fundamental constraints of the Tauri sidecar model and the Windows operating system, not limitations we can work around. Notable Tauri projects like Clash Verge Rev (80k+ stars) previously shipped portable builds but discontinued them due to the same set of issues.
We provide NSIS installers for Windows — with the bundled download engine.
macOS builds use ad-hoc signing and are not notarized. Windows Authenticode signing is optional through the SignPath workflow. Unsigned installers may trigger browser or system warnings.
The app is fully open-source and every release binary is built automatically by GitHub Actions CI. For added peace of mind, you can always build from source.
Release .sig files are Tauri updater signatures, not GPG signatures. They can be verified with minisign using the two-line public key format required by minisign. Decode plugins.updater.pubkey from tauri.conf.json from base64 and save it as rayburst.pub, then replace Rayburst_x.x.x_<file> with the release file you downloaded:
python3 -c 'import base64,sys; sys.stdout.write(base64.b64decode(sys.stdin.read()).decode())' \
< Rayburst_x.x.x_<file>.sig \
> Rayburst_x.x.x_<file>.minisig
minisign -V \
-m Rayburst_x.x.x_<file> \
-x Rayburst_x.x.x_<file>.minisig \
-p rayburst.pubExpected result:
Signature and comment signature verified
If the artifact was changed:
Signature verification failed
Note
See our Code Signing Policy and Privacy Policy.
# Clone the repository
git clone https://github.com/AnInsomniacy/rayburst.git
cd rayburst
# Install frontend dependencies
pnpm install
# Start development server (launches Tauri + Vite)
pnpm tauri dev
# Build for production
pnpm tauri buildrayburst/
├── src/ # Frontend (Vue 3 + TypeScript)
│ ├── api/ # aria2-compatible JSON-RPC client
│ ├── components/ # Vue components
│ │ ├── about/ # About panel
│ │ ├── common/ # Shared UI primitives
│ │ ├── layout/ # Sidebar, speedometer, navigation
│ │ ├── preference/ # Settings pages, update dialog
│ │ └── task/ # Task list, detail, add task
│ ├── composables/ # Reusable composition functions
│ ├── router/ # Vue Router configuration
│ ├── shared/ # Shared utilities & config
│ │ ├── locales/ # 27 language packs
│ │ ├── utils/ # Pure utility functions (with tests)
│ │ ├── types.ts # TypeScript interfaces
│ │ ├── constants.ts # App constants & defaults
│ │ └── configKeys.ts # Persisted config key registry
│ ├── stores/ # Pinia state management (with tests)
│ ├── styles/ # Global CSS custom properties
│ └── views/ # Page-level route views
├── src-tauri/ # Backend (Rust + Tauri 2)
│ ├── src/
│ │ ├── aria2/ # Native Rust aria2 JSON-RPC client
│ │ ├── commands/ # Tauri invoke handlers (config, engine, fs, etc.)
│ │ ├── database/ # SQLite owner: history, credentials, receipts
│ │ ├── engine/ # Aria2 Next sidecar lifecycle, runtime config, state, cleanup
│ │ ├── services/ # Runtime services (stat, speed, monitor, HTTP API, deep links)
│ │ ├── error.rs # AppError enum
│ │ ├── gpu_guard.rs # Linux GPU compatibility guard
│ │ ├── menu.rs # Native menu builder
│ │ ├── tray.rs # System tray setup
│ │ ├── upnp.rs # UPnP/IGD port mapping
│ │ └── lib.rs # Tauri builder & plugin registration
│ ├── native-messaging/ # Browser Native Messaging launcher
│ └── binaries/ # Aria2 Next sidecar binaries (6 platforms)
├── scripts/ # bump-version.sh, release.sh
├── .github/workflows/ # CI (ci.yml) + Release (release.yml)
└── website/ # Static website (HTML, CSS and JavaScript)
PRs and issues are welcome! Please read the Contributing Guide and Code of Conduct before getting started.
Built in the hours I should've been writing my thesis — I'm a PhD student surviving on instant noodles 🍜
macOS builds are ad-hoc signed and not notarized. Windows signing is handled separately through SignPath.
Buy me a coffee ☕ — maybe one day I can afford those certificates, so antivirus software stops treating my app like a criminal 🥲
MIT — Copyright (c) 2025-present AnInsomniacy