GitHub Folder Downloader

CLI de alto rendimiento para obtener selectivamente carpetas de repositorios de GitHub con verificaciones de integridad, caché e interfaz de usuario de progreso enriquecida

GitHub Folder Downloader Visitar Proyecto

GitHub Folder Downloader es una herramienta avanzada de línea de comandos que permite a los desarrolladores descargar cualquier carpeta (o subconjunto de archivos) de un repositorio de GitHub público o privado, con filtros detallados, almacenamiento en caché automático, validación de integridad robusta y limitación de velocidad inteligente, mientras muestra una elegante barra de progreso impulsada por Rich. Escrito en Python 3.12+ moderno y construido alrededor de asyncio + aiohttp, puede saturar su ancho de banda sin exceder los límites de la API de GitHub ni corromper las descargas.


Mi Rol en el Proyecto

Como creador y único desarrollador del proyecto, yo:


Detalles Técnicos y Aspectos Interesantes

Arquitectura Principal

MóduloResponsabilidad
cache.pyCaché de disco indexada por JSON (~/.gh-folder-download) con validación de SHA + tamaño y limpieza automática después de 30 días
rate_limiter.pyAlgoritmo de retardo adaptativo que mantiene el uso de la API por debajo del 60% para un rendimiento máximo
parallel_downloader.pyDescargas de transmisión asyncio + ThreadPoolExecutor con concurrencia configurable (1-20)
filters.pyLista negra binaria de 86 extensiones, patrones glob, límites de tamaño y preajustes útiles como code-only o minimal.
integrity.pySumas de verificación MD5/SHA-1/SHA-256, detección binaria, escaneo de bytes nulos y generación de informes exhaustivos
progress.pyProgreso enriquecido con velocidad, ETA, % de aciertos de caché y barras por archivo
retry.pyRetroceso exponencial con fluctuación, máximo 10 intentos, reanudable en caídas de red

Características Destacadas


Mi Impacto en el Proyecto


Conclusión

Al combinar una arquitectura modular, paralelismo agresivo pero seguro y una CLI pulida, GitHub Folder Downloader convierte lo que solía ser una tarea tediosa y propensa a errores en una línea de comando rápida y fiable. El proyecto muestra mi capacidad para diseñar herramientas centradas en el desarrollador que equilibran el rendimiento, la robustez y una experiencia de usuario agradable.

Visitar Proyecto

Leynier Gutiérrez González

Todos los derechos reservados © 2025

Linkedin GitHub 𝕏 Instagram Youtube Telegram telegram