{"repo":"keyhankamyar/ProxyRotator","free":true,"listed":false,"github":"https://github.com/keyhankamyar/ProxyRotator","clone":"git clone https://github.com/keyhankamyar/ProxyRotator.git","description":"Async V2ray (VMESS) proxy rotation library for Python. Auto-update subscriptions, test connections, rotate user-agents, handle rate limits. Built on Xray-core for reliable web scraping at scale.","language":"Python","stars":13,"topics":["crawler","httpx","library","proxy","proxy-manager","proxy-pool","proxy-rotation","proxy-rotator","pydantic","python"],"license":"MIT","category":"scrapers-browser-automation","readme_excerpt":"Proxy Rotator An async Python library for managing VMESS proxy rotation with automatic subscription updates, connection testing, and user-agent rotation. Perfect for web scraping projects that require reliable proxy management. --- ✨ Features - Automatic Proxy Rotation : Seamlessly rotate through a pool of VMESS proxies - Subscription Support : Fetch and update proxies from subscription URLs - Connection Testing : Automatically test and filter working proxies - User-Agent Rotation : Optional automatic user-agent rotation for each proxy - Configurable : Extensive configuration options via Pydantic models - Pythonic : Clean async/await syntax with context managers - Full Logging : Comprehensive logging for debugging and monitoring - ate Limiting : Built-in delay with jitter for rate limit handling - Thread-Safe : Global lock prevents concurrent proxy sessions --- 📋 Requirements - Python 3.11+ - Xray-core installed and accessible in PATH Installing Xray-core Linux/macOS: Windows: Download from Xray-core releases --- 🚀 Installation Or install from source: --- 📖 Quick Start Basic Usage To use the rotation you have two options. Use manual API or context manager. First, manual: To rotate: or: Context manager syntax to make your life easier: The context manager also have builtin retries for internal errors like port allocation. To rotate: or: Direct Proxy List Note that \"proxies\" argument is mutually exclusive with \"subscription url\" . You should pass only one of them. --- ⚙️ Conf","default_branch":null,"files":null,"tree":[],"storefront":"/r/keyhankamyar","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/keyhankamyar/ProxyRotator/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}