Introduction
Risuko is a Rust-powered multi-protocol download engine with a desktop app, CLI, and Node.js API.
Risuko (Ri-su-ko) is a high-performance download engine written in Rust. It supports HTTP/HTTPS, BitTorrent, ED2K, M3U8/HLS, FTP/SFTP, and RSS feeds.
The name means squirrel in Japanese, an energetic little creature that rapidly gathers and caches away every treasure it finds.
You can use Risuko in three ways:
- Desktop App — A cross-platform GUI built with Tauri and Vue.js
- CLI — A standalone command-line tool with full feature parity
- Node.js API — Native bindings via napi-rs for embedding in your applications
Supported Protocols
| Protocol | Description |
|---|---|
| HTTP/HTTPS | Multi-threaded range-based downloads with connection pooling |
| BitTorrent | Magnet links, .torrent files, dual-stack DHT, LSD, MSE/PE encryption, UPnP port mapping, seeding control |
| ED2K | eDonkey2000 network protocol |
| M3U8/HLS | HTTP Live Streaming segment downloads |
| FTP/SFTP | File Transfer Protocol with TLS support |
| RSS | Automatic feed subscription and download |
Quick Example
CLI
# Download a file with 16 threads
risuko download https://example.com/large-file.zip -t 16
# Download a torrent
risuko download magnet:?xt=urn:btih:abc123...Node.js
import { startEngine, addUri, onEvent } from "@risuko/risuko-js";
await startEngine();
onEvent((event, gid) => {
console.log(`[${event}] ${gid}`);
});
const gid = await addUri(["https://example.com/file.zip"]);