Releases: bluet/proxybroker2
Releases · bluet/proxybroker2
ProxyBroker2 v2.0.0b1 - Production Ready Beta 🚀
🎉 Major Milestone: ProxyBroker2 is Production-Ready!
This beta release represents a complete modernization and stabilization of ProxyBroker, making it ready for production use with zero critical bugs and comprehensive test coverage.
✨ Key Highlights
🔧 Critical Bug Fixes
- ✅ Fixed ProxyPool heap corruption - Proper min-heap maintenance with
avg_resp_timepriority - ✅ Added timeout/retry limits - Prevents infinite loops in proxy import operations
- ✅ Deterministic protocol selection - Clear priority order (SOCKS5 → SOCKS4 → CONNECT → HTTPS → HTTP)
- ✅ Signal handler cleanup - Proper memory management prevents leaks
- ✅ Modern SSL handling - Uses
asyncio.start_tls()instead of deprecated patterns - ✅ Exception chaining - Proper error propagation with
raise ... from err
🚀 Production-Ready Status
- Zero critical bugs - All signal handler leaks, deadlocks, and heap corruption fixed
- 100% test suite pass rate - All 131 tests passing with comprehensive coverage
- Python 3.10-3.13 support - Full compatibility with latest Python versions
- Modern async patterns - Updated from deprecated asyncio patterns
🛠️ API Improvements
- Proxy.types setter - Direct assignment and update operations with type validation
- Cache invalidation - Schemes properly refresh when types change
- Async context managers - Server lifecycle management
- Resource cleanup - Comprehensive connection and SSL cleanup
🧪 Modern Testing Philosophy
- Behavior-focused tests - Contract-based testing protects APIs during refactoring
- 131 passing tests - Comprehensive coverage across all components
- Mock infrastructure - Realistic testing without external dependencies
- Integration tests - End-to-end workflow validation
🔄 Updated Dependencies (May 2025)
- aiohttp 3.10.11 → 3.12.0 (asyncio deprecation fixes)
- aiodns 3.1.1 → 3.4.0 (DNS resolution improvements)
- attrs 22.1.0 → 25.3.0 (Python 3.10+ optimizations)
- pytest 7.1.2 → 8.3.5 (modern testing framework)
📚 Enhanced Documentation
- Updated architecture guide with clear component explanations
- Modern toolchain documentation (ruff, pytest, poetry)
- Migration guide for smooth transition from v1.x
- Auto-generated API reference from high-quality docstrings
🎯 Perfect for Production Use
Web Scraping & Automation
import asyncio
from proxybroker import Broker
async def main():
proxies = asyncio.Queue()
broker = Broker(proxies)
await broker.find(types=['HTTP', 'HTTPS'], limit=10)
asyncio.run(main())Proxy Server Deployment
import asyncio
from proxybroker import Broker
async def main():
proxies = asyncio.Queue()
broker = Broker(proxies)
await broker.serve(host='127.0.0.1', port=8888, types=['HTTP', 'HTTPS'])
asyncio.run(main())🔄 Migration from v1.x
ProxyBroker2 maintains API compatibility while adding modern features:
- All existing code continues to work
- New type validation provides better error messages
- Enhanced async patterns improve performance
- Modern Python 3.10+ support
📦 Installation
# Install from GitHub (recommended)
pip install git+https://github.com/bluet/proxybroker2.git
# Or with Poetry
poetry add git+https://github.com/bluet/proxybroker2.git🤝 Contributing
ProxyBroker2 is ready for community contributions! See CONTRIBUTING.md for guidelines.
Ready to use ProxyBroker2 in production? This beta release provides a stable, thoroughly tested foundation for your proxy needs.
🤖 Generated with Claude Code
v2.0.0-alpha4
What's Changed
- run script in venv through Poetry by @hms5232 in #92
- Add coverage test by @afunTW in #96
- Remove deprecation warnings/Add support for python 3.10 by @ziloka in #94
- use setup-python built-in cache functionality by @hms5232 in #97
- instructions to compile proxybroker to shared executable for Major platforms (Windows, Linux, and MacOS) by @ziloka in #95
- fix README.md by @bluet in #100
New Contributors
Full Changelog: v2.0.0-alpha3...v2.0.0-alpha4
v2.0.0-alpha3
What's Changed
- Update for python 3.10 by @ziloka in #88
- docs: add ziloka as a contributor for code by @allcontributors in #90
- build/use poetry by @a5r0n in #86
New Contributors
Full Changelog: v2.0.0-alpha...v2.0.0-alpha3
v2.0.0-alpha
What's Changed
- 1 send proxy info back to client in http header by @bluet in #2
- Bump attrs from 19.1.0 to 19.3.0 by @dependabot-preview in #6
- WIP: ADD: using pre-commit for code quality by @afunTW in #4
- Adding optional SIGINT handler. It raises RuntimeError when run on a … by @quancore in #9
- [Snyk] Security upgrade pyyaml from 5.3.1 to 5.4 by @bluet in #18
- [Snyk] Security upgrade py from 1.8.1 to 1.10.0 by @bluet in #19
- External ip by @quancore in #11
- lock python version to 3.6 in Dockerfile by @vincentinttsh in #29
- Don't lock python packages black version in dev-py36.txt by @vincentinttsh in #30
- Bump py from 1.8.1 to 1.10.0 by @dependabot in #63
- Bump pyyaml from 5.3.1 to 5.4 by @dependabot in #64
- [Snyk] Security upgrade python from 3.6-alpine to 3.8.13-alpine by @bluet in #60
- add output format: text by @bluet in #65
- docs: add ivaano as a contributor for code by @allcontributors in #72
- docs: add synchronizing as a contributor for ideas by @allcontributors in #70
- docs: add vincentinttsh as a contributor for code, review by @allcontributors in #69
- docs: add quancore as a contributor for code by @allcontributors in #68
- docs: add afunTW as a contributor for code, ideas, review by @allcontributors in #67
- build(deps-dev): bump pycares from 3.1.1 to 4.2.0 by @dependabot in #78
- Feature/update GitHub action by @afunTW in #79
- Separate the linter and test check by @afunTW in #80
- docs: add a5r0n as a contributor for code by @allcontributors in #66
- fix: tests and styles by @bluet in #74
- Deprecate py36 py37 support by @afunTW in #81
- [Snyk] Security upgrade python from 3.6-alpine to 3.10-alpine by @snyk-bot in #55
New Contributors
- @bluet made their first contribution in #2
- @dependabot-preview made their first contribution in #6
- @afunTW made their first contribution in #4
- @quancore made their first contribution in #9
- @vincentinttsh made their first contribution in #29
- @dependabot made their first contribution in #63
- @allcontributors made their first contribution in #72
- @snyk-bot made their first contribution in #55
Full Changelog: https://github.com/bluet/proxybroker2/commits/v2.0.0-alpha