I’m writing a DNS server in Rust. This is mostly for fun and for my own edification, though I hope for this to be a useful piece of software someday. My goals are to build a standards compliant DNS server in Rust in the most straightforward way that I can. I actually got the idea from this guide for doing this very thing, but I quickly realized that one of the things that I value is being able to design a system purely based on the provided specification so I started over going only off the RFC 1935 document. I’ve never implemented systems software based solely on an RFC before, but I’m quite familiar with DNS and how it works, so I decided to give it a try. I grabbed a copy of RFC 1935 and am slowly working through implementing the protocol as described in the spec. Once the server itself is compliant with that RFC, I’ll evaluate whether or not I’d like to implement further specs and features. I intend to chronicle my progress on this blog.