Documentation
hollow
A recursive DNS resolver, a filtering server and a protocol toolkit, built on the Go standard library alone. It walks the root servers itself rather than asking anyone, and it shows the walk.
Start hereQuickstartResolve a name, ask for a record type, and put a filtering server on a port that needs no privileges.SetupInstallationOne line on Linux, macOS or Windows, with the download checked against the published checksums before anything is written.ReferenceCLI referenceAll 6 verbs, every flag transcribed from the binary's own usage output, and the three exit codes.EngineeringZero dependencies41 standard library substitutions, each recording what it cost rather than restating what it replaced.
A lookup, start to finish
Output in the dig presentation format, because anyone reading it already knows how to — and because a difference from dig's rendering of the same message is a bug worth seeing.
hollow resolve example.com
$ hollow resolve example.com; <<>> hollow <<>> example.com. A;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53913;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 1232;; QUESTION SECTION:;example.com. IN A;; ANSWER SECTION:example.com. 300 IN A 172.66.147.243example.com. 300 IN A 104.20.23.154;; Query time: 31 ms;; SERVER: 2803:f800:50::6ca2:c0a2#53 (udp);; MSG SIZE rcvd: 72