View on GitHub

KelpsGet

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

¡KelpsGet ahora es KGet! v1.5.0 (Nuevo Lanzamiento)

Un descargador moderno, ligero y versátil escrito en Rust para descargas rápidas y confiables a través de línea de comandos (CLI) e interfaz gráfica (GUI).

English Português Español

Capturas de pantalla

Cómo funciona (Resumen)

  1. Barra de progreso (CLI): Muestra velocidad, tiempo estimado y bytes transferidos.
  2. Nomenclatura inteligente de archivos:
    • Usa el nombre del archivo de la URL.
    • Usa index.html por defecto si la URL termina con /.
  3. Manejo de errores: Termina con código 1 en errores HTTP (ej: 404).
  4. Verificación de espacio: Verifica el espacio disponible en disco.
  5. Reintento automático: Reintenta la descarga en fallos de red.
  6. Modo de descarga avanzado (HTTP/HTTPS): Descargas en chunks paralelos, soporta reanudación.
  7. Soporte de proxy: HTTP, HTTPS, SOCKS5 con autenticación.
  8. Características de optimización: Compresión (para caché), caché de archivos, límite de velocidad.
  9. Descargas de Torrent: Añade enlaces magnet al transmission-daemon para descarga.
  10. Descargas FTP/SFTP: Conecta a servidores FTP/SFTP para transferir archivos.

Características

Vea la lista completa de características y cambios recientes en el CHANGELOG.

¡KGet ahora es también un Crate!

Si desea usar KGet como un crate, haga clic aquí.

Instalación

Opción 1: Compilar desde la fuente (Recomendado para obtener todas las características)

Necesitará tener Rust instalado. Si no lo tiene, instálelo en rustup.rs.

Instale algunas dependencias: Para sistemas basados en Debian/Ubuntu:

sudo apt update
sudo apt install -y libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev pkg-config

Para Fedora:

sudo dnf install -y libxcb-devel libxkbcommon-devel openssl-devel pkg-config

Clone el repositorio y compile el proyecto:

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

El ejecutable estará en target/release/kget. Puede copiarlo a un directorio en su PATH:

sudo cp target/release/kget /usr/local/bin/

Opción 2: Instalar vía Cargo

cargo install kelpsget

Si encuentra problemas con la GUI al instalar vía cargo install, compilar desde la fuente es más confiable.

Opción 3: Descargar binarios precompilados

Verifique la sección Releases para los binarios más recientes para su SO.

Linux/macOS:

chmod +x kelpsget  # Hacer ejecutable
./kelpsget [URL]   # Ejecutar directamente

Windows:

Ejecute el archivo .exe directamente.

Requisito adicional para descargas de Torrent: Transmission Daemon

KGet usa transmission-daemon para gestionar descargas de torrent.

1. Instalar Transmission Daemon:

2. Detener el Daemon para configuración:

sudo systemctl stop transmission-daemon

3. Configurar Transmission: Edite el archivo settings.json. Ubicaciones comunes:

Use sudo nano /var/lib/transmission-daemon/info/settings.json (o la ruta correcta para su sistema).

Encuentre y modifique estas líneas:

{
     // ...
     "rpc-authentication-required": true,
     "rpc-enabled": true,
     "rpc-password": "transmission", // Este es el valor que KGet usa por defecto para conectar a Transmission (recomendado)
     "rpc-port": 9091,
     "rpc-username": "transmission", // Nombre de usuario que KGet usa para conectar a Transmission
     "rpc-whitelist-enabled": false, // Para acceso local. Para acceso remoto, configure IPs.
     "download-dir": "/var/lib/transmission-daemon/downloads", // Directorio por defecto de descarga de Transmission
     // ...
}

Importante: Después de guardar e iniciar el transmission-daemon, reemplazará la contraseña en texto plano rpc-password por una versión con hash.

4. (Opcional) Ajustar permisos del usuario del Daemon: Si transmission-daemon se ejecuta como un usuario específico (ej: debian-transmission o transmission), asegúrese que este usuario tiene permisos de escritura en los directorios de descarga que pretende usar con KelpsGet o el propio Transmission. Puede añadir su usuario al grupo del Transmission daemon:

sudo usermod -a -G debian-transmission su_usuario_linux # Para Debian/Ubuntu
# Verifique el nombre del grupo/usuario de Transmission en su sistema

5. Iniciar Transmission Daemon:

sudo systemctl start transmission-daemon
# Verificar estado:
sudo systemctl status transmission-daemon

Acceda a http://localhost:9091 en su navegador. Deberá ver la interfaz web de Transmission y se le solicitará iniciar sesión con el rpc-username y rpc-password que configuró.

Uso

Línea de comandos (CLI)

kelpsget [OPCIONES] <URL>

Ejemplos:

Interfaz gráfica (GUI)

Para iniciar la GUI:

kelpsget --gui

La GUI permite que introduzca la URL, ruta de salida e inicie descargas. El estado y progreso se muestran en la interfaz.

Configuración de KelpsGet

KelpsGet usa un archivo de configuración en:

Ejemplo de config.json para KelpsGet:

{
  "proxy": {
     "enabled": false,
     "url": null,
     "username": null,
     "password": null,
     "proxy_type": "Http"
  },
  "optimization": {
     "compression": true, // Compresión para caché de KelpsGet
     "compression_level": 6,
     "cache_enabled": true,
     "cache_dir": "~/.cache/kelpsget", // Expanda ~ manualmente o use ruta absoluta
     "speed_limit": null,
     "max_connections": 4
  },
  "torrent": {
     "enabled": true,
     "transmission_url": "http://localhost:9091/transmission/rpc",
     "username": "transmission", // Usuario configurado en settings.json de Transmission
     "password": "transmission", // Contraseña configurada en settings.json de Transmission
     "max_peers": 50,
     "max_seeds": 50,
     "port": null,
     "dht_enabled": true,
     "default_download_dir": null // Directorio por defecto para descargas de torrent vía KelpsGet
  },
  "ftp": {
     "default_port": 21,
     "passive_mode": true
  },
  "sftp": {
     "default_port": 22,
     "key_path": null // Ruta para clave SSH privada, ej: "~/.ssh/id_rsa"
  }
}

Nota sobre cache_dir y key_path: Si usa ~, asegúrese que su programa expanda correctamente la tilde al directorio home del usuario, o use rutas absolutas.

🔗 Enlaces importantes

Puede ver publicaciones sobre el proyecto en otras comunidades:

Contribuyendo

¿Quiere contribuir? ¡Consulte nuestra guía de contribución!

¿Encontró un error o quiere añadir una característica? ¡Abra un issue o envíe un PR!

🚀 Haga descargas fácilmente con la velocidad y confiabilidad de Rust. 🚀

Licencia

Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para detalles.