Downloads
Built-in download manager with parallel chunked downloads, crash recovery, and cookie-aware resumption
Bushido has its own download engine built in Rust. No browser extension, no separate app. It intercepts every download, runs it through a custom pipeline, and gives you pause/resume, crash recovery, and multi-connection acceleration out of the box.
How It Works
When you click a download link, Bushido intercepts it via WebView2's DownloadStarting event and suppresses the default browser UI. The file gets routed through our engine instead.
For files over 1MB on servers that support Range headers, Bushido splits the download into up to 6 simultaneous segments. Each segment grabs its own byte range and writes to the file at the exact offset. This saturates your bandwidth the way IDM does — except it's built into the browser.
For small files or servers without Range support, it falls back to a single connection. No unnecessary overhead.
Parallel Chunked Downloads
| Detail | Value |
|---|---|
| Default segments | 6 |
| Min file size for chunking | 1MB |
| Min segment size | 512KB |
| Dynamic splitting | Yes — idle workers split the largest remaining segment |
When a fast segment finishes early, the orchestrator finds the segment with the most bytes remaining and splits it at the midpoint. A new worker picks up the second half. No idle connections.
Crash Recovery
Every download writes a manifest file (.part.json) to disk alongside the partial file. The manifest stores per-segment progress, byte ranges, and cookies. If bushido crashes or you close it mid-download, each segment resumes from where it left off when you reopen. Most browsers lose your progress on close.
Cookie Extraction
When a download starts, bushido grabs all cookies for that URL from the browser's cookie jar via ICoreWebView2_2::CookieManager and passes them to the download engine. Downloads from authenticated sites (Google Drive, Dropbox, etc.) work without any extra setup.
Download Panel
The download panel is a slide-over in the sidebar. Click the download icon to open it. It shows all active, paused, completed, and failed downloads with a badge for the active count.
Controls
| State | Actions |
|---|---|
| Downloading | Pause, cancel |
| Paused | Resume (if server supports Range), cancel |
| Completed | Open file, open folder |
| Failed | Retry, remove |
The segment count badge (e.g. "6x") shows next to the speed while a chunked download is running.
Queue Priority
Drag downloads in the panel to reorder them. Higher items get priority. When bandwidth is limited, downloads are served in priority order. New downloads start at the bottom.
Bandwidth Throttle
Set a global speed limit across all active downloads so a large file doesn't eat your entire connection. Options:
| Setting | Limit |
|---|---|
| Unlimited | No cap (default) |
| 512 KB/s | Light browsing stays responsive |
| 1 MB/s | Balanced |
| 2 MB/s | |
| 5 MB/s | |
| 10 MB/s | Barely noticeable on fast connections |
The limit applies across all simultaneous downloads and segments — not per-download. Set it in Settings > Downloads. Changes take effect immediately, no restart needed.
MIME Auto-Sort
Downloads are automatically sorted into folders based on their file type. When a download starts, Bushido checks the server's Content-Type header and matches it against your routing rules. If Content-Type is missing, it falls back to extension-based detection.
Default rules:
| MIME Prefix | Target Folder |
|---|---|
image/ | (empty — uses default location) |
video/ | (empty — uses default location) |
audio/ | (empty — uses default location) |
application/pdf | (empty — uses default location) |
Set a folder path for any rule in Settings > Downloads to activate it. For example, set image/ to your Pictures folder and every downloaded image routes there automatically. Leave empty to use your default download location.
Settings
In bushido://settings under Downloads:
- Download location — Where files save. Defaults to your system downloads folder.
- Ask where to save — Prompt for a location before every download.
- Bandwidth limit — Global speed cap across all downloads.
- MIME routing — Per-type folder routing. Set a folder path for each MIME prefix.
How It Compares
Chrome has parallel downloading behind a flag (chrome://flags/#enable-parallel-downloading), but it's off by default. None of the major browsers persist download state to disk — close the browser and your progress is gone. IDM handles all of this, but it's a $25 separate app with a browser extension. Bushido does it natively.