A modern, lightweight, and versatile downloader written in Rust for fast and reliable file downloads via command line (CLI) and graphical user interface (GUI).
English | PortuguΓͺs | EspaΓ±ol
- GUI:
- Torrent on
localhost:9091/transmission/web/:
- CLI:
- Interactive:
- 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.
See the full list of features and recent changes in the CHANGELOG.
If you want to use KGet as a library you can click here.
Build/run with GUI support:
cargo build --features gui
cargo run --features gui -- --guiIf 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).
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-configFor Fedora:
sudo dnf install -y libxcb-devel libxkbcommon-devel openssl-devel pkg-configClone the repository and compile the project:
git clone https://github.com/davimf721/KGet.git
cd KGet
cargo build --releaseThe 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/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.
Check the Releases section for the latest binaries for your OS.
chmod +x ksget # Make executable
./kelpsget [URL] # Run directlyRun the .exe file directly.
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:[email protected]/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://[email protected]/path/file.dat kget --sftp sftp://[email protected]/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
- π Documentation
- π¦ crates.io
- π» GitHub
- π Changelog
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. π
This project is licensed under the MIT License - see the LICENSE file for details.