// the find
go-gost/gost
GO Simple Tunnel - a simple tunnel written in golang
GOST is a multi-protocol tunnel and proxy tool written in Go that supports an unusually wide range of transport protocols — SOCKS5, HTTP(S), SSH, QUIC, KCP, WebSocket, gRPC, and more — chainable in arbitrary combinations. It targets developers and sysadmins who need flexible traffic forwarding, NAT traversal, or censorship circumvention without stitching together multiple tools. The v3 rewrite added a Web API and plugin system, making it scriptable beyond just config files.
The protocol chaining model is genuinely powerful — you can stack QUIC over WebSocket over TLS without writing any code, just config. The Web API for dynamic reconfiguration is a real differentiator over most tunnel tools where you'd need to restart on config change. Plugin system with gRPC hooks means you can intercept auth, routing, and admission at runtime without forking the binary. E2E test coverage is present and uses real Python echo servers rather than mocked connections.
The README is Chinese-first with a secondary English doc — not a dealbreaker, but the English docs lag and the official wiki (gost.run) has some machine-translated sections that obscure subtle config behavior. The core logic lives in a separate repo (go-gost/x) which makes reading the actual implementation non-trivial from the main repo alone. E2E test coverage is thin — only Shadowsocks and parallel selector are tested; the other dozen protocols have no automated tests. No unit tests visible at all, so protocol edge cases are catch-as-catch-can.