4 stable releases
Uses new Rust 2024
| new 1.5.3 | Dec 23, 2025 |
|---|---|
| 1.5.2 | Dec 22, 2025 |
| 1.5.1 | Dec 18, 2025 |
| 1.5.0 | May 27, 2025 |
#1218 in Network programming
365KB
2K
SLoC
KGet! v1.5.3 (Latest Release)
A modern, lightweight, and versatile downloader written in Rust for fast and reliable file downloads via command line (CLI) and graphical user interface (GUI).
Screenshots
- GUI:
- Torrent on
localhost:9091/transmission/web/:
- CLI:
- Interactive:
How It Works (Summary)
- Progress Bar (CLI): Shows speed, ETA, and transferred bytes.
- Smart File Naming:
- Uses the filename from the URL.
- Defaults to
index.htmlif the URL ends with/.
- Error Handling: Exits with code 1 on HTTP errors (e.g., 404).
- Space Check: Verifies available disk space.
- Automatic Retry: Retries download on network failure.
- ISO Smart Detection: Detects
.isofiles to ensure raw binary transfer and prevent corruption. - Integrity Check: Optional SHA256 verification for disk images after download.
- Memory Efficient: Parallel downloads use streaming buffers to maintain a low RAM footprint regardless of file size.
- Disk Optimization: Uses buffered I/O to prevent high disk active time and system freezes during fast transfers.
- Advanced Download Mode (HTTP/HTTPS): Downloads in parallel chunks, supports resume.
- Proxy Support: HTTP, HTTPS, SOCKS5 with authentication.
- Optimization Features: Compression (for cache), file caching, speed limiting.
- Torrent Downloads (Magnet Links):
- Default: opens the magnet link using your system's default BitTorrent client (qBittorrent/Transmission/etc).
- Optional (feature): can download via Transmission RPC (
torrent-transmissionfeature).
- FTP/SFTP Downloads: Connects to FTP/SFTP servers to transfer files.
Features
See the full list of features and recent changes in the CHANGELOG.
KGet now is a Library too!
If you want to use KGet as a library you can click here.
Optional Cargo features
GUI (gui)
Build/run with GUI support:
cargo build --features gui
cargo run --features gui -- --gui
Transmission RPC torrent backend (torrent-transmission)
If you want KGet to add magnet links to a Transmission daemon (RPC), build with:
cargo build --features torrent-transmission
# or with GUI:
cargo build --features "gui torrent-transmission"
Select the backend at runtime:
- Default (no env var): uses the system torrent client (
xdg-open/open/start) - Transmission RPC:
# Linux/macOS
export KGET_TORRENT_BACKEND=transmission
# Windows PowerShell (current session)
$env:KGET_TORRENT_BACKEND="transmission"
Transmission settings (env vars):
KGET_TRANSMISSION_HOST(default:localhost)KGET_TRANSMISSION_PORT(default:9091)KGET_TRANSMISSION_RPC_PATH(default:/transmission/rpc)KGET_TRANSMISSION_WEB_PATH(default:/transmission/web/)- Optional auth:
KGET_TRANSMISSION_USER,KGET_TRANSMISSION_PASS
Compatibility:
- You can also use
KGET_TRANSMISSION_URLandKGET_TRANSMISSION_WEB(full URLs).
Installation
Option 1: Compile from source
You will need Rust installed. If you don't have it, install it from rustup.rs.
Install some dependencies: For Debian/Ubuntu based systems:
sudo apt update
sudo apt install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev pkg-config
For Fedora:
sudo dnf install -y libxcb-devel libxkbcommon-devel openssl-devel pkg-config
Clone the repository and compile the project:
git clone https://github.com/davimf721/KGet.git
cd KGet
cargo build --release
The executable will be in target/release/kget. You can copy it to a directory in your PATH:
sudo cp target/release/kget /usr/local/bin/
Option 2: Install via Cargo
You can install the published binary from crates.io (the GUI and Transmission backend are opt-in via features):
# Install the binary without GUI (default)
cargo install Kget
# Install with GUI support
cargo install Kget --features gui
# Install with Transmission RPC backend (optional)
cargo install Kget --features torrent-transmission
# Install with both
cargo install Kget --features "gui torrent-transmission"
If you encounter issues with the GUI when installing via cargo install, compiling from source is more reliable.
Option 3: Download Pre-compiled Binaries
Check the Releases section for the latest binaries for your OS.
Linux/macOS:
chmod +x ksget # Make executable
./kelpsget [URL] # Run directly
Windows:
Run the .exe file directly.
Usage
Command Line (CLI)
kget [OPTIONS] <URL>
Examples:
-
HTTP/HTTPS Download:
kget https://example.com/file.txt -
Rename Output File:
kget -O new_name.txt https://example.com/file.txt kget -O ~/MyDownloads/ https://example.com/video.mp4 # Saves as ~/MyDownloads/video.mp4 -
FTP Download:
kget ftp://user:password@ftp.example.com/archive.zip kget --ftp ftp://ftp.example.com/pub/file.txt -
SFTP Download: (Requires SSH key setup or password if the server allows it)
kget sftp://user@sftp.example.com/path/file.dat kget --sftp sftp://user@sftp.example.com/path/file.dat -O local.dat -
Torrent Download (Magnet Link): (Requires
transmission-daemonconfigured and running)kget "magnet:?xt=urn:btih:YOUR_HASH_HERE&dn=TorrentName" kget --torrent "magnet:?xt=urn:btih:YOUR_HASH_HERE" -O ~/MyTorrents/KelpsGet will add the torrent to Transmission and attempt to open the web interface (
http://localhost:9091) for management. -
Silent Mode:
kget -q https://example.com/file.txt -
Advanced Download Mode (HTTP/HTTPS):
kget -a https://example.com/large_file.zip- ISO Download with Verification: KGet will automatically detect the ISO and ask if you want to verify the SHA256 hash once finished.
-
Use Proxy:
kget -p http://proxy:8080 https://example.com/file.txt -
Proxy with Authentication:
kget -p http://proxy:8080 --proxy-user user --proxy-pass pass https://example.com/file.txt -
Speed Limit:
kget -l 1048576 https://example.com/file.txt # Limit to 1MB/s -
Disable Compression (KGet-specific, not HTTP):
kget --no-compress https://example.com/file.txt -
Disable Cache (KGet-specific):
kget --no-cache https://example.com/file.txt
🔗 Important Links
- 📚 Documentation
- 📦 crates.io
- 💻 GitHub
- 📝 Changelog
You can see posts about the project in others communities:
Contributing
Want to contribute? Check out our contribution guide!
Found a bug or want to add a feature? Open an issue or send a PR!
🚀 Download files effortlessly with the speed and reliability of Rust. 🚀
License
This project is licensed under the MIT License - see the LICENSE file for details.
Dependencies
~35–87MB
~1.5M SLoC