GitHub Folder Downloader

High-performance CLI to selectively fetch GitHub repo folders with integrity checks, caching, and rich progress UI

GitHub Folder Downloader Visit Project

GitHub Folder Downloader is an advanced command-line tool that lets developers download any folder (or file subset) from a public or private GitHub repository—with fine-grained filters, automatic caching, robust integrity validation, and smart rate-limiting—while displaying a sleek Rich-powered progress bar. Written in modern Python 3.12+ and built around asyncio + aiohttp, it can saturate your bandwidth without ever tripping GitHub’s API limits or corrupting downloads.


My Role in the Project

As the project’s creator and sole developer, I:


Technical Details and Interesting Aspects

Core Architecture

ModuleResponsibility
cache.pyJSON‑indexed disk cache (~/.gh-folder-download) with SHA + size validation and auto‑cleanup after 30 days
rate_limiter.pyAdaptive delay algorithm that keeps API usage under 60 % for maximal throughput
parallel_downloader.pyasyncio + ThreadPoolExecutor streaming downloads with configurable concurrency (1‑20)
filters.py86‑extension binary blacklist, glob patterns, size limits, and handy presets like code-only or minimal
integrity.pyMD5/SHA‑1/SHA‑256 checksums, binary detection, null‑byte scan, and exhaustive report generation
progress.pyRich progress with speed, ETA, cache‑hit %, and per‑file bars
retry.pyExponential back‑off with jitter, max 10 attempts, resumable on network drops

Highlight Features


My Impact on the Project


Conclusion

By combining modular architecture, aggressive yet safe parallelism, and a polished CLI, GitHub Folder Downloader turns what used to be a tedious, error‑prone task into a fast and reliable one‑liner. The project showcases my ability to design developer‑centric tools that balance performance, robustness, and delightful user experience.

Visit Project

Leynier Gutiérrez González

All rights reserved © 2025

Linkedin GitHub 𝕏 Instagram Youtube Telegram telegram