All notable changes to this project are documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
While the major version is 0, the public API may change in any release.
CONTRIBUTING.mddescribing setup, the test/lint workflow, code style, and the commit/PR/release process.- This
CHANGELOG.md, with reconstructed notes for the previously emptyv0.0.1–v0.0.5releases. ResolveJudgehelper that looks a judge up in theJudgesregistry, and aNewAppconstructor shared by the binary and the tests.
- Relicensed the project from the Apache License 2.0 to the MIT License, matching
the other
memclutterprojects. - Reworked
README.md: a description, status badges, install/usage sections, the tab-separated output format, a library-usage example, and a "how it works" explanation of judges and the protocol probing.
--judgenow selects the proxy judge. It was parsed but ignored: every check ran against the AZEnv judge regardless of the flag, so the documentedproxyjudge.usdefault never applied. An unknown judge name is now rejected with a non-zero exit, listing the valid names, and no proxies are checked.- The CLI no longer hangs after processing all proxies.
Actionnever closed its worker channel, so the worker goroutines never returned and the program blocked forever; the channel is now closed once the feed is exhausted. - Rewrote the GitHub Actions workflows: pinned current Go versions, fixed the
empty
go-versionin the lint job, and dropped the dead OS matrix.
0.0.5 - 2022-11-25
- Second proxy judge
ProxyjudgeUsJudge(http://proxyjudge.us/) alongsideAZEnvPhpJudge, plus aJudgesregistry map keyed by judge name. golangci-lintand its GitHub Actions workflow.- More tests around the judges and check engine.
0.0.4 - 2022-11-25
- Tests for the
Feedimplementations.
- Off-by-one bug in
SliceFeed.Nextthat mis-tracked the current index.
0.0.3 - 2022-11-24
- Introduced
base.goholding the coreFeedandJudgeinterfaces (moved out of their previous files) and reformatted the package godoc.
0.0.2 - 2022-11-17
A full rewrite of the checker into a concurrent, judge-based engine.
Check(addr, judge)engine that probes eachip:portagainst all four protocols (http,https,socks4,socks5) and returns aCheckResultwith the online flag, supported protocols, per-protocol errors, and speed.Judgeabstraction (target URL + recommended timeout) with theAZEnvPhpJudgeimplementation.- Reading proxies from a stdin stream in addition to command-line arguments.
- Concurrent checking via a worker pool sized by the
--threadsflag (default 10). - GitHub Actions CI running the test suite with coverage uploaded to Codecov.
- Upgraded the CLI from
urfave/cliv1 to v2 and moved the entry point tocmd/main.go. - Proxy addresses are now plain
ip:port(the tool tries every protocol) instead of requiring ascheme://prefix. - Output is now tab-separated
addr<TAB>protocols<TAB>speedfor working proxies.
0.0.1 - 2019-03-21
First release of proxycheck — a simple proxy list checker.
- A
urfave/cliv1 command that checks proxies supplied via repeatable--proxyAddrflags or a--proxyAddrFilelist file. - Per-scheme checking for
http,https,socks4, andsocks5proxies (h12.io/socksfor SOCKS), validating each against a--targetURL. - Working proxy addresses printed to stdout; failures logged.