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 DownloaderVisitar 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ódulo Responsabilidad
cache.py Caché 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.py Algoritmo de retardo adaptativo que mantiene el uso de la API por debajo del 60% para un rendimiento máximo
parallel_downloader.py Descargas de transmisión asyncio + ThreadPoolExecutor con concurrencia configurable (1-20)
filters.py Lista negra binaria de 86 extensiones, patrones glob, límites de tamaño y preajustes útiles como code-only o minimal.
integrity.py Sumas de verificación MD5/SHA-1/SHA-256, detección binaria, escaneo de bytes nulos y generación de informes exhaustivos
progress.py Progreso enriquecido con velocidad, ETA, % de aciertos de caché y barras por archivo
retry.py Retroceso 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 © 2026

LinkedinGitHub𝕏InstagramYoutubeTelegramtelegram