Today I've implemented a little DNS client that can act as a DNS ronin, because I didn't have my own resolver running while being on the go.
I'm using it to manage my /etc/hosts entries, so that my stupid Web Browser doesn't do DNS queries all the time when the tracking ISP's TTL responses are always set to 0.
Anyways, it's implemented in pure go, and has its own code to parse the DNS UDP/TCP/TLS network packets. Thought I might share and it might be interesting to read for others.