Andy Balholm
unread,Jan 28, 2015, 4:41:18 PM1/28/15Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to João Veríssimo, golang-nuts
One reason I switched was that with Go’s standard library, an HTTP proxy is not really any more complicated than an ICAP server—maybe actually simpler. I hadn’t realized that at first. A basic HTTP proxy in Go fits on one page.
Another reason was simplicity of deployment. If I do my own HTTP proxying, there is only one program to deploy and configure instead of two. Also, I was thinking about making it run on Android, and getting Squid to compile for Android would not be easy. And now there’s only one program to potentially be incompatible with the client or server instead of two. I think I’ve had fewer dropped connections and such since I got Squid out of the loop. (Not that Squid is bad, just that the more moving parts there are, the more things can go wrong.)
Also, I got tired of waiting for Squid’s SSLBump feature to be production-ready. In a proxy, I could just write my own. (If I wanted to contribute to Squid’s SSLBump to speed up its development, I would have needed to learn my way around Squid’s C++ codebase, and probably learn the OpenSSL API. To do it myself in Go, I only had to deal with my own, much smaller, codebase, and the crypto/tls package.)
PS If you CC me on your replies, I’ll see your messages quicker than if you just reply to the list.