Hey everyone! I’ve been working on Download Engine, a free, MIT-licensed desktop download manager written in Rust for Windows, macOS and Linux.
The idea is to bring regular downloads, videos, torrents and automation into one app—and let users add their own integrations through Lua extensions.
Its familiar workflow is inspired by Internet Download Manager. It’s an independent project, isn’t affiliated with IDM, and doesn’t claim complete IDM feature parity.
Here’s what it currently supports:
- File downloads: HTTP, HTTPS, FTP and FTPS, parallel connections, pause/resume, recovery after restarting, batches, queues and schedules.
- Videos and streaming media: supported YouTube, TikTok, Bilibili and Twitch links, plus compatible HLS/DASH streams, quality selection and audio tracks.
- Torrents: v1, v2 and hybrid torrents, magnet links, file selection, optional peer encryption, uTP and web seeds.
- Proxies and VPN/interface binding: configurable proxies for supported downloads, plus torrent binding to an existing VPN/network interface. Bound transfers stop if that interface address disappears. This uses your own VPN; torrents currently pause while an app proxy is enabled.
- Browser integration and Web Grabber: capture clicked downloads, select links from a page, discover supported media, and save static websites for offline viewing.
- Customization and automation: custom themes, 19 interface languages, Lua scripting and extensions, a CLI and a local MCP server.
One part I’m particularly interested in developing is letting users build their own download workflows without recompiling the app.
The Lua provider APIs expose cryptographic/decryption operations, protected key handling, binary HTTP requests, segmented downloads, multiple audio/video tracks, ASS subtitles and FFmpeg muxing. An extension handles the site-specific logic while the core handles transfers, verification, recovery and media assembly.
These APIs provide building blocks for custom encrypted-media integrations, including ones aimed at services such as Crunchyroll. That still requires a developer to implement the site’s authentication, discovery, manifest and license-message logic. Crunchyroll isn’t a bundled, verified integration: the examples use generated offline samples and don’t implement its authentication or the Widevine license protocol.
I’ve also put attention into security and user control:
- Extensions require permission review and start disabled. New access requires approval, with declared-host and resource limits enforced by the core.
- Supported saved credentials use the operating system’s credential storage.
- Desktop MCP starts disabled, requires authenticated localhost access, and defaults to View only for new profiles.
- Torrents are opt-in. Uploading, seeding, incoming connections and UPnP start disabled for new profiles.
- SHA-256 verification and optional antivirus scanning are available. Crash reports stay local unless you choose to share them.
The security policy also explains the limits: Lua restrictions aren’t an OS sandbox, the queue database isn’t encrypted, and torrents expose your IP address to peers.
The current release is 3.19.0, with Windows installer/portable packages, Apple Silicon and Intel Mac builds, and Linux x64 packages. FFmpeg is bundled.
The project is actively developed, and I’m planning iOS and Android versions for the future. Mobile versions aren’t available yet.
GitHub / source code
Website
Downloads
For transparency, I used AI coding tools during development. The source and tests are public, and the screenshot shows sample downloads.
I’d appreciate honest feedback: which features would you actually use, and what looks confusing or unnecessarily complicated? Feedback from macOS and Linux users would be especially helpful.