A fast, modern download manager written in Rust. Supports HTTP/HTTPS, FTP/SFTP, and magnet links with a built-in torrent client.
- Multi-protocol: HTTP, HTTPS, FTP, SFTP, and Magnet links
- Native Torrent Client: Downloads torrents directly — no external apps needed
- Turbo Mode: Parallel connections for faster downloads
- Interactive REPL: Full
kget --interactivemode with history, all protocols, and live config editing - GUI & CLI: Use whichever you prefer
- Cross-platform: macOS, Linux, Windows
- ISO Verification: Optional SHA256 checksum for disk images
- Native Notifications: Completion/error notifications in the Rust GUI on Linux/Windows
| GUI | CLI |
|---|---|
![]() |
![]() |
# Install Rust from https://rustup.rs if needed
# Linux dependencies (Debian/Ubuntu)
sudo apt install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev pkg-config
# Clone and build
git clone https://github.com/davimf721/KGet.git
cd KGet
cargo build --release --features gui
# Run
./target/release/kget --guicargo install Kget --features guiDownload from Releases.
kget --gui# Basic download
kget https://example.com/file.zip
# Turbo mode (parallel connections, resumable)
kget -a https://example.com/large.iso
# Save to specific location
kget -O ~/Downloads/myfile.zip https://example.com/file.zip
# Torrent download (auto-detected)
kget "magnet:?xt=urn:btih:HASH..."
# FTP – anonymous (no credentials needed)
kget --ftp ftp://ftp.gnu.org/gnu/emacs/emacs-28.2.tar.gz
# FTP – authenticated
kget --ftp ftp://user:pass@server/file.zip
# SFTP – password in URL
kget --sftp sftp://user:pass@server/path/to/file.dat
# SFTP – key-based (SSH agent or ~/.ssh/id_*)
kget --sftp sftp://user@server/path/to/file.datkget --interactiveLaunches a REPL with an ASCII art banner, command history, and full protocol support:
kget> download -a -o ~/Downloads/ubuntu.iso https://releases.ubuntu.com/...
kget> download --sftp sftp://user@server/backups/db.sql.gz
kget> download magnet:?xt=urn:btih:...
kget> config set connections 8
kget> config set speed-limit 1048576
kget> help
| Flag | Description |
|---|---|
-a, --advanced |
Turbo mode with parallel connections (resumable) |
-O <path> |
Output file or directory |
-q, --quiet |
Minimal output |
-p <proxy> |
Use HTTP/SOCKS5 proxy |
-l <bytes> |
Speed limit in bytes/sec |
--sha256 <hash> |
Verify the completed file against an expected SHA256 hash |
--ftp |
Use FTP protocol |
--sftp |
Use SFTP protocol (password or key-based auth) |
--gui |
Launch graphical interface |
-i, --interactive |
Interactive REPL mode |
KGet can be used as a Rust library. See LIB.md for details.
use kget::{download, DownloadOptions, Optimizer, ProxyConfig};
let options = DownloadOptions::default();
download(
"https://example.com/file.zip",
ProxyConfig::default(),
Optimizer::new(),
options,
None,
)?;# CLI only
cargo build --release
# With GUI
cargo build --release --features gui
# Cross-compile for Linux/Windows (from macOS)
./build-cross.shcargo test # All tests
./run-tests.sh # Full test suite with lintingMIT License - see LICENSE

