2 Commits
Author SHA1 Message Date
dsql 9775125107 chore: bump to 1.1.1
Signed-off-by: disqualifier <dev@disqualifier.me>
2026-10-16 04:35:32 -04:00
dsql 56f8e3d878 perf: next() stops scanning at the first available proxy
T3-18: _next_from_list scanned and collected every available proxy, then used
only the first (8.6 ms per call at 10k proxies). break after the first; the
selection order and log levels are identical (verified over full cycles with
burns, dead proxies, cooldown and the all-cooling fallthrough), ~1.8 us/call
at any pool size.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-10-16 04:35:29 -04:00
3 changed files with 6 additions and 4 deletions

No files matched your search

+3 -3
View File
@@ -9,15 +9,15 @@ edits. **Credentials are always injected — never hardcoded.**
## Install
```
aioproxies @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioproxies.git@v1.0.0
aioproxies @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioproxies.git@v1.1.1
# network helpers (current_ip / reset) need the extra:
aioproxies[net] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioproxies.git@v1.0.0
aioproxies[net] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioproxies.git@v1.1.1
```
The core has no dependencies. The `net` extra adds `aiohttp` for `current_ip` /
`reset`.
Drop the `@v1.0.0` suffix from the line above to install the latest unpinned.
Drop the `@v1.1.1` suffix from the line above to install the latest unpinned.
## Formatting
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "aioproxies"
version = "1.1.0"
version = "1.1.1"
description = "proxy parsing, formatting, health, and pool management for aiohttp/aioweb, camoufox, and socks5"
requires-python = ">=3.10"
dependencies = []
+2
View File
@@ -173,6 +173,8 @@ class AioProxies:
if self._available(state["timeout"], now):
fine.append(idx)
self._clear_stale_burn(state)
# only the first available proxy is used; scanning on is O(pool) per call
break
if fine:
chosen = fine[0]