v2.0.0b3 — Full IPv6 support
Pre-release
Pre-release
🌐 Full IPv6 support — first-class across the stack
This release makes IPv6 a peer of IPv4 across detection, validation, anonymity comparison, SOCKS5 proxying, HTTP CONNECT bracketing, provider parsing, and DNS resolution.
Closes: #201 (IPv6 epic) and #214 (test infra).
Headline changes
- End-to-end IPv6 —
Resolver.host_is_ip,get_real_ext_ip,get_all_ip,_get_anonymity_lvl,Judge.check,Proxy(host=...), and[v6]:portprovider parsing all handle IPv6 alongside IPv4. - Happy Eyeballs DNS (RFC 8305 § 3) —
Resolver.resolve()races A and AAAA queries in parallel by default; explicitqtypeorfamilyfalls back to the legacy single-family contract. - SOCKS5 ATYP=0x04 for IPv6 destinations (RFC 1928), with response-ATYP-driven reply parsing for dual-stack proxies that may bind a different family than the client requested.
- RFC 9112/9110-compliant CONNECT bracketing —
CONNECT [2001:db8::1]:443 HTTP/1.1+Host: [2001:db8::1]; strips caller-supplied brackets sourlparse(...).netlocstyle inputs don't double-bracket. - RFC 5952 canonical form as the single in-process IP representation across every comparison site.
- New public helpers:
canonicalize_ip(s) -> str | None,find_proxy_pairs(text) -> list[tuple[str, str]]. IPv6Pattern700-character regex deleted along with its# nosemgrepsuppression — replaced by a narrow tokenizer + stdlibipaddressvalidator.
Quality
- +36 IPv6 tests (259 total); all 5 Python matrix cells (3.10–3.14) green.
- coderabbit ✅ approved; SonarCloud Quality Gate passed; opsera scan 0 critical/high.
Follow-ups (filed)
- #213 connection-layer Happy Eyeballs + DNSSEC + IDN
- #215 codebase-wide type hints + mypy CI
- #216 SBOM + sigstore (supply-chain hardening)
- #217 cert pinning for default judge servers
- #218 opt-in ECH (Encrypted Client Hello)
- #219 opt-in TLS 1.3-only mode
- #220 deterministic IPv6 external-IP discovery
Install
# Docker (multi-arch: amd64 + arm64)
docker pull bluet/proxybroker2:2.0.0b3
docker run --rm bluet/proxybroker2:2.0.0b3 find --types HTTP --limit 5
# pip (from GitHub)
pip install -U git+https://github.com/bluet/proxybroker2.git@v2.0.0b3See CHANGELOG.md for the full diff.
Generated with Claude Code