دسترسی سریع، پایدار و بدون VPN به GitHub
یک کلاینت سبک، امن و استریممحور برای مشاهده و دانلود محتوای GitHub در ایران
ایرانگیت یک کلاینت مستقل و بسیار سریع برای GitHub است که به کاربران ایرانی اجازه میدهد بدون نیاز به VPN، محتوای GitHub را مشاهده و دانلود کنند.
ایران گیت هیچ دادهای را روی دیسک ذخیره نمیکند و تمام فایلها بهصورت استریم واقعی منتقل میشوند.
تمام درخواستها مستقیم به GitHub ارسال میشوند و هیچ تغییری در محتوای اصلی ایجاد نمیشود.
تمام دادهها مستقیم از GitHub دریافت میشوند.
- اطلاعات کاربر
- آواتار
- ریپازیتوریها (مرتبشده بر اساس ستارهها)
- رندر حرفهای README
- تبدیل خودکار لینکهای
blob→raw - نمایش فایلها و فولدرها
- نمایش ساختار پروژه (Tree View)
- نمایش ریلیزها با Markdown HTML
- دانلود ZIP ریپازیتوری
- استریم واقعی بدون ذخیرهسازی
- پشتیبانی از ادامه دانلود (Range)
- پشتیبانی از فایلهای حجیم
- استریم chunk-based
- کنترل همزمانی با Semaphore
- اضافه شدن LRU Cache
- اضافه شدن TTL
- اضافه شدن Circuit Breaker
- کاهش شدید تعداد درخواستهای GitHub
- افزایش سرعت و پایداری
- جلوگیری از overload
- بازگشت خودکار پس از زمان مشخص
برای جلوگیری از سوءاستفاده:
- جستجو
- RAW
- دانلودها
ایران گیت از سه کلاینت مجزا استفاده میکند:
| نوع کلاینت | کاربرد | محدودیت |
|---|---|---|
| API Client | پروفایل، ریپو، سرچ | سریع، کممصرف |
| RAW Client | فایلهای raw.githubusercontent | محدودیت متوسط |
| Download Client | ZIP و Asset | محدودیت شدید + استریم |
ویژگیهای معماری:
- بدون پروکسی
- بدون ذخیرهسازی
- connection pool کنترلشده
- semaphore برای کنترل دانلودهای همزمان
- circuit breaker برای جلوگیری از overload
git clone https://github.com/Scorpian-my/IranGit
cd IranGit(اختیاری) ساخت محیط مجازی:
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux / macOS
نصب کتابخانهها:
pip install -r requirements.txt
فایل .env را ویرایش کرده و توکن خود را اضافه کنید
GITHUB_TOKEN=your_github_token_here
python main.py
از مشارکت شما در توسعهٔ IranGit با آغوش باز استقبال میکنیم.
این پروژه یک ابزار عمومی و آزاد است و هرگونه کمک شما—از گزارش باگ گرفته تا توسعهٔ قابلیتهای جدید—مستقیماً به بهبود تجربهٔ کاربران ایرانی کمک میکند.
اگر با خطا، رفتار غیرمنتظره یا مشکل عملکردی روبهرو شدید:
- یک Issue باز کنید
- توضیح کامل + اسکرینشات + لاگ (در صورت وجود) قرار دهید
اگر ایدهای برای بهبود سرعت، امنیت، UI یا معماری دارید:
- در بخش Issues یک Feature Request ثبت کنید
- توضیح دهید چرا این قابلیت مفید است
اگر قصد دارید کد ارسال کنید:
- ریپو را Fork کنید
- یک Branch جدید بسازید
- تغییرات را اعمال کنید
- Pull Request با توضیحات کامل ارسال کنید
هرگونه کمک در موارد زیر ارزشمند است:
- بهبود README
- نوشتن راهنمای نصب
- توضیح معماری
- افزودن مثالها و اسکرینشاتها
برای حفظ کیفیت پروژه:
- کد باید تمیز، خوانا و قابل نگهداری باشد
- از اضافهکردن وابستگیهای غیرضروری خودداری کنید
- برای قابلیتهای جدید، تست و توضیح کافی ارائه دهید
- تغییرات بزرگ را قبل از شروع، در Issue مطرح کنید
- ساختار پوشهها و معماری پروژه را رعایت کنید
هر قدم کوچک شما در ادامه راه ایران گیت تاثیر زیادی دارد ما با آغوش باز از همراهی شما استقبال میکنیم.


