Skip Navigation

Go lang (aka “Go” aka “GoLang”) standard libs conflate SOCKS proxy with HTTP proxy, thus breaking all Go apps that use a proxy

These environment variables designate a parameter that holds the value of a HTTP proxy:

  • http_proxy
  • https_proxy
  • HTTP_PROXY
  • HTTPS_PROXY

It’s a convention, but the name “HTTP proxy” can only imply HTTP proxy, not a SOCKS proxy. The golang¹ standard libraries expect the above HTTP proxy parameters to specify a SOCKS proxy. How embarrassing is that? So any Go app that offers a proxy feature replicates getting the proxy kind backwards. Such as hydroxide, which requires passing a SOCKS proxy as a HTTP proxy.

¹ “Go” is such a shitty unsearchable name for a language. It’s no surprise that the developers of the language infra itself struggle with the nuances of natural language. HTTP≠SOCKS. And IIUC, this language is a product of Google. WTF. It’s the kind of amateurish screwup you would expect to come from some teenager’s mom’s basement, not a fortune 500 company among the world’s biggest tech giants.

(edit)
It’s a bit amusing and simultaneously disasappointing that reporting bugs and suggesting enhancements to Google’s language requires using Microsoft’s platform:

https://github.com/golang/proposal#the-proposal-process

FOSS developers: plz avoid Golang - it’s a shit show.

0
0 comments