KelpsGet v0.1.3
Un clon moderno y ligero de wget escrito en Rust para descargas de archivos rápidas y confiables desde la línea de comandos.
English | Português | Español |
Características
✅ Herramienta CLI simple para descargar archivos vía HTTP/HTTPS.
✅ Barra de progreso con velocidad en tiempo real y tiempo estimado.
✅ Nombres de salida personalizados (flag -O para renombrar archivos).
✅ Detección de tipo MIME y manejo adecuado de archivos.
✅ Multiplataforma (Linux, macOS, Windows).
✅ Modo silencioso para scripts.
✅ Verificación automática de espacio antes de la descarga.
✅ Reintento automático en caso de fallo de conexión.
✅ Validación de nombre de archivo.
✅ Soporte para diferentes tipos MIME.
✅ Visualización detallada de información de descarga.
✅ Modo de descarga avanzado con chunks paralelos y capacidad de reanudación.
✅ Soporte para proxy (HTTP, HTTPS, SOCKS5).
✅ Compresión y caché automáticos.
✅ Limitación de velocidad y control de conexión.
Instalación
Opción 1: Instalación vía Cargo
cargo install kelpsget
Opción 2: Descargar Binarios Pre-compilados
Descarga el último binario para tu sistema operativo en Release
Linux/macOS:
chmod +x kelpsget # Hacer ejecutable
./kelpsget [URL] # Ejecutar directamente
Windows:
Ejecuta el archivo .exe directamente.
Ejemplos de Uso
Descarga Básica:
kelpsget https://ejemplo.com/archivo.txt
Renombrar el Archivo de Salida:
kelpsget -O nuevo_nombre.txt https://ejemplo.com/archivo.txt
Modo Silencioso:
kelpsget -q https://ejemplo.com/archivo.txt
Modo de Descarga Avanzado (Paralelo y Reanudable):
kelpsget -a https://ejemplo.com/archivo_grande.zip
Usando Proxy:
kelpsget -p http://proxy:8080 https://ejemplo.com/archivo.txt
Con Autenticación de Proxy:
kelpsget -p http://proxy:8080 --proxy-user usuario --proxy-pass contraseña https://ejemplo.com/archivo.txt
Limitación de Velocidad:
kelpsget -l 1048576 https://ejemplo.com/archivo.txt # Límite de 1MB/s
Deshabilitar Compresión:
kelpsget --no-compress https://ejemplo.com/archivo.txt
Deshabilitar Caché:
kelpsget --no-cache https://ejemplo.com/archivo.txt
Cómo Funciona
- Barra de Progreso: Muestra velocidad de descarga, tiempo estimado y bytes transferidos.
- Nombrado Inteligente de Archivos:
- Usa el nombre del archivo de la URL (ej: archivo.txt de https://ejemplo.com/archivo.txt).
- Usa index.html por defecto si la URL termina con /.
- Manejo de Errores: Sale con código 1 en errores HTTP (ej: 404).
- Verificación de Espacio: Verifica espacio disponible en disco antes de la descarga.
- Reintento Automático: Intenta nuevamente la descarga en caso de fallo de conexión.
- Modo de Descarga Avanzado:
- Descarga en chunks paralelos para mejor rendimiento
- Soporta reanudación de descargas interrumpidas
- Maneja archivos grandes de manera eficiente
- Soporte para Proxy:
- Soporte para proxy HTTP, HTTPS y SOCKS5
- Autenticación de proxy
- Configuración flexible de proxy
- Características de Optimización:
- Compresión automática (gzip, brotli, lz4)
- Caché de archivos para descargas repetidas más rápidas
- Limitación de velocidad
- Control de conexión
Configuración
KelpsGet usa un archivo de configuración ubicado en:
- Windows:
%APPDATA%\kelpsget\config.json
- Linux/macOS:
~/.config/kelpsget/config.json
Ejemplo de configuración:
{
"proxy": {
"enabled": false,
"url": null,
"username": null,
"password": null,
"proxy_type": "Http"
},
"optimization": {
"compression": true,
"compression_level": 6,
"cache_enabled": true,
"cache_dir": "~/.cache/kelpsget",
"speed_limit": null,
"max_connections": 4
}
}
Características de Seguridad
- Verificación de Espacio: Garantiza espacio suficiente en disco antes de la descarga.
- Validación de Nombre de Archivo: Previene inyección de ruta.
- Manejo de URL: Procesa URLs de manera segura.
- Reintento Automático: Intenta nuevamente en caso de fallo de red.
- Soporte Seguro para Proxy: Conexiones proxy cifradas.
Contribuyendo
¿Encontraste un error o quieres agregar una funcionalidad? ¡Abre un issue o envía un PR!
🚀 Realiza descargas sin esfuerzo con la velocidad y confiabilidad de Rust. 🚀
🔗 Enlaces Importantes
- 📚 Documentación
- 📦 crates.io
- 💻 GitHub
- 📝 Changelog
🎯 Próximos Pasos
Estamos trabajando en las siguientes mejoras:
- Soporte para descargas vía FTP/SFTP
- Interfaz web para monitoreo de descargas
- Integración con servicios de almacenamiento en la nube
- Sistema de plugins personalizados
- Soporte para descargas vía torrent
- Mejoras en la compresión adaptativa
- Optimización del sistema de caché
- Soporte para más protocolos de proxy
- Interfaz gráfica de escritorio (GUI)
- Documentación en múltiples idiomas
¿Quieres contribuir con alguna de estas funcionalidades? ¡Revisa nuestra guía de contribución!
Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.