View on GitHub

KGet

A modern, lightweight wget clone written in Rust for fast and reliable file downloads from the command line.

KGet v1.6.2

Um gerenciador de downloads moderno e rápido escrito em Rust. O KGet suporta HTTP/HTTPS, FTP/SFTP e magnet links com cliente torrent nativo.

English Português Español

Recursos

Instalação

A partir do código-fonte

# Instale Rust em https://rustup.rs se necessário

# Dependências Linux (Debian/Ubuntu)
sudo apt install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev pkg-config

git clone https://github.com/davimf721/KGet.git
cd KGet
cargo build --release --features gui

./target/release/kget --gui

Via crates.io

cargo install Kget --features gui

Binários prontos

Baixe versões para macOS, Linux e Windows em Releases.

Uso

# Download simples
kget https://example.com/arquivo.zip

# Modo turbo (paralelo, retomável)
kget -a https://example.com/grande.iso

# Salvar em local específico
kget -O ~/Downloads/arquivo.zip https://example.com/arquivo.zip

# Verificar SHA256 esperado
kget --sha256 <hash> https://example.com/imagem.iso

# Magnet link (detectado automaticamente)
kget "magnet:?xt=urn:btih:HASH..."

# FTP anônimo
kget --ftp ftp://ftp.gnu.org/gnu/emacs/emacs-28.2.tar.gz

# FTP autenticado
kget --ftp ftp://usuario:senha@servidor/arquivo.zip

# SFTP com senha na URL
kget --sftp sftp://usuario:senha@servidor/caminho/arquivo.dat

# SFTP com chave SSH (usa SSH agent ou ~/.ssh/id_*)
kget --sftp sftp://usuario@servidor/caminho/arquivo.dat

Modo Interativo

kget --interactive

Abre um REPL com banner ASCII, histórico de comandos e suporte a todos os protocolos:

kget> download -a -o ~/Downloads/ubuntu.iso https://releases.ubuntu.com/...
kget> download --sftp sftp://user@servidor/backups/db.sql.gz
kget> download magnet:?xt=urn:btih:...
kget> config set connections 8
kget> config set speed-limit 1048576
kget> help

Opções principais

Flag Descrição
-a, --advanced Modo turbo com conexões paralelas (retomável)
-O <path> Arquivo ou pasta de saída
-q, --quiet Saída mínima
-p <proxy> Proxy HTTP/SOCKS5
-l <bytes> Limite de velocidade em bytes/s
--sha256 <hash> Verifica o arquivo final contra um hash SHA256 esperado
--ftp Usar protocolo FTP
--sftp Usar protocolo SFTP (senha ou autenticação por chave)
--gui Abre a interface gráfica
-i, --interactive Abre o modo REPL interativo

Biblioteca Rust

O KGet também é uma biblioteca Rust reutilizável. Veja LIB.pt-br.md para exemplos completos da API atual.

use kget::{download, DownloadOptions, Optimizer, ProxyConfig};

let options = DownloadOptions::default();
download(
    "https://example.com/arquivo.zip",
    ProxyConfig::default(),
    Optimizer::new(),
    options,
    None,
)?;

Build e testes

cargo build --release
cargo build --release --features gui
cargo test
./run-tests.sh

Licença

MIT - veja LICENSE.