Implement DNS in a weekend in common lisp

  Finished         Common Lisp         certainty/cl-dns

I had some time on my hand during a weekend and I have never built a DNS resolver before, so here is my version of implementing DNS in a weekend. This is a fun project because it’s small in scope, yet the problem space is non-trivial. The main objective for me here was to learn more about the current state of common lisp and how to use its binary manipulation and networking capabilities.


  • Learn more about Common Lisp’s socket implementation
  • Learn more about Common Lisp’s capabilities to parse binary data
  • Understand in detail what a DNS resolver does


  • Implement a full DNS resolver


  • Provide an API for IP resolution and
  • Provide an API to issue arbitrary DNS queries and display the result similar to the dig command



December 31, 2023