Skip to main content

Advanced Python proxy rotation library with auto-fetching, validation, and persistence

Project description

ProxyWhirl



🌀 Intelligent proxy rotation that just works


PyPI   Downloads   Python


Stats


📖 Docs
  
🚀 Examples
  
💬 Discussions




⚡ 30-Second Setup

pip install proxywhirl
from proxywhirl import ProxyWhirl

rotator = ProxyWhirl(proxies=["http://p1:8080", "http://p2:8080"])
response = rotator.get("https://api.example.com/data")
# Dead proxies auto-ejected ✓ | Slow ones deprioritized ✓ | Fast ones favored ✓



🎯 Why ProxyWhirl?




9 Strategies
Round-robin, weighted, geo-targeted, performance-based & more




109 Sources
Auto-fetch from built-in providers with validation




Self-Healing
Auto-eject dead proxies, circuit breakers, recovery




Blazing Fast
Async-first, <3μs selection, zero blocking




🔄 Rotation Strategies

# Switch strategies on the fly
rotator = ProxyWhirl(strategy="performance-based")
rotator.set_strategy("geo-targeted", preferences={"US": [...], "EU": [...]})
Strategy Best For
round-robin Even distribution
random Unpredictable patterns
weighted Favor reliable proxies
performance-based Lowest latency
geo-targeted Regional routing
session-persistence Sticky sessions
cost-aware Budget optimization
composite Custom pipelines



🎣 Auto-Fetch Proxies

from proxywhirl import ProxyFetcher

# Grab 300+ validated proxies in seconds
proxies = await ProxyFetcher().fetch_all(validate=True)



🖥️ Multiple Interfaces

Python API

rotator.get(url)
rotator.post(url, json=data)
async with AsyncProxyWhirl() as async_rotator:
    await async_rotator.get(url)

CLI

proxywhirl fetch
proxywhirl pool list
proxywhirl health

REST API

docker-compose up -d
curl localhost:8000/api/v1/proxies



Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proxywhirl-0.3.1.tar.gz (233.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxywhirl-0.3.1-py3-none-any.whl (251.7 kB view details)

Uploaded Python 3

File details

Details for the file proxywhirl-0.3.1.tar.gz.

File metadata

  • Download URL: proxywhirl-0.3.1.tar.gz
  • Upload date:
  • Size: 233.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for proxywhirl-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f72ed7671279b3dbaf6d4754b06743193c6e5199e29ebd04b353320f792d2d70
MD5 03afcd7075657815ce4494877b9cda67
BLAKE2b-256 eb52a05c97d17e5e5b670ac54675bda5d72d56f302756f9cdb8559769d5a6266

See more details on using hashes here.

Provenance

The following attestation bundles were made for proxywhirl-0.3.1.tar.gz:

Publisher: release.yml on wyattowalsh/proxywhirl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proxywhirl-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: proxywhirl-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 251.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for proxywhirl-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2427b80df03455f65997c5e89b529347ade85e5750cd3805f4fa7aa13508a897
MD5 501262fb52fc9b68dc93e426ec661a58
BLAKE2b-256 5f97fead209366423644461aa43c09ed27f70c7b3b3c15424913b1aff518d9ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for proxywhirl-0.3.1-py3-none-any.whl:

Publisher: release.yml on wyattowalsh/proxywhirl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page