[HN Gopher] A DNS resolver in 80 lines of Go
       ___________________________________________________________________
        
       A DNS resolver in 80 lines of Go
        
       Author : 0xedb
       Score  : 47 points
       Date   : 2022-02-01 21:11 UTC (1 hours ago)
        
 (HTM) web link (jvns.ca)
 (TXT) w3m dump (jvns.ca)
        
       | NoWayDude1 wrote:
       | One can do even better. How about a DNS resolver in 1 line of
       | bash code:
       | 
       | /lib/systemd/systemd-resolved
       | 
       | Using miekg/dns to write a DNS resolver in "80 lines" is like
       | microwaving pizza and then saying "I made a pizza in just 5
       | minutes in one easy step".
        
         | taeric wrote:
         | More than a little unfair when the following is in the article:
         | I'm not going to write this completely from          scratch -
         | I think parsing DNS packets is really          interesting, but
         | it's definitely more than 80          lines of code, and I find
         | that it kind of          distracts from the algorithm.
         | 
         | Which, seems legit to me. This article was a fun read to
         | refresh on exactly what goes on in resolving basic records.
        
           | dixie_land wrote:
           | I agree it's a fun article but you can't deny the title is at
           | the very least clickbait-ish
        
         | silisili wrote:
         | I normally don't like comments like this but I think in this
         | case your point stands. DNS is not 'easy' in that you have
         | troves of RFCs and undocumented but expected behaviors to
         | follow, etc. miekg/dns does all of the heavy lifting here.
         | 
         | Writing a resolver in it is a fun project, but bragging about
         | the line count is silly.
        
         | chomp wrote:
         | I smiled at this, though the Sagan quote "If you wish to make
         | an apple pie from scratch, you must first invent the universe"
         | springs to mind. At some point to be reasonable you have to cut
         | off the lower layers of abstraction or else it's madness.
         | 
         | Unbound leans on libresolv, so I don't think it's cheating to
         | lean on external libraries - most of the hard part about
         | resolvers is all the crufty RFCs you have to support anyway,
         | not the basic nuts and bolts of resolving an A record.
        
       ___________________________________________________________________
       (page generated 2022-02-01 23:00 UTC)