Skip to content

davimf721/KGet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
KGet Banner

KGet v1.6.2

A fast, modern download manager written in Rust. Supports HTTP/HTTPS, FTP/SFTP, and magnet links with a built-in torrent client.

English | Português | Español

Features

  • 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 --interactive mode 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

Screenshots

GUI CLI

Installation

From Source

# 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 --gui

From crates.io

cargo install Kget --features gui

Pre-built Binaries for macOS/Linux/Windows GUI

Download from Releases.

Usage

GUI Mode

kget --gui

CLI Mode

# 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.dat

Interactive Mode

kget --interactive

Launches 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

Options

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

Library Usage

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,
)?;

Building

# CLI only
cargo build --release

# With GUI
cargo build --release --features gui

# Cross-compile for Linux/Windows (from macOS)
./build-cross.sh

Testing

cargo test              # All tests
./run-tests.sh          # Full test suite with linting

Links

You can see posts about the project in others communities:

License

MIT License - see LICENSE

About

KGet is a modern, lightweight download manager written in Rust for fast and reliable file downloads from the command line and native app for windows, linux and mac.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors