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:
Transmission RPC torrent backend (torrent-transmission)
If you want KGet to add magnet links to a Transmission daemon (RPC), build with:
# or with GUI:
Select the backend at runtime:
- Default (no env var): uses the system torrent client (
xdg-open/open/start) - Transmission RPC:
# Linux/macOS
# 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:
For Fedora:
Clone the repository and compile the project:
The executable will be in target/release/kget. You can copy it to a directory in your PATH:
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)
# Install with GUI support
# Install with Transmission RPC backend (optional)
# Install with both
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:
Windows:
Run the .exe file directly.
Usage
Command Line (CLI)
Examples:
-
HTTP/HTTPS Download:
-
Rename Output File:
-
FTP Download:
-
SFTP Download: (Requires SSH key setup or password if the server allows it)
-
Torrent Download (Magnet Link): (Requires
transmission-daemonconfigured and running)KelpsGet will add the torrent to Transmission and attempt to open the web interface (
http://localhost:9091) for management. -
Silent Mode:
-
Advanced Download Mode (HTTP/HTTPS):
- ISO Download with Verification: KGet will automatically detect the ISO and ask if you want to verify the SHA256 hash once finished.
-
Use Proxy:
-
Proxy with Authentication:
-
Speed Limit:
-
Disable Compression (KGet-specific, not HTTP):
-
Disable Cache (KGet-specific):
🔗 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.