What I learned from making a DNS client in Rust

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • dns-packet

    Parse DNS packets

  • I made one too https://github.com/ccouzens/dns-packet

    The differences:

    I followed this guide rather than the RFCs https://github.com/EmilHernvall/dnsguide/blob/master/chapter...

    Mine isn't as polished. The command line parsing and output is more thrown together.

    I hardcoded the packet identifier (it's not production code, and I'm only looking up one at a time).

    I didn't use any bit manipulation libraries. I can see they would help because DNS packets don't line up their information with the byte boundaries.

  • dnsguide

    A guide to writing a DNS Server from scratch in Rust

  • I made one too https://github.com/ccouzens/dns-packet

    The differences:

    I followed this guide rather than the RFCs https://github.com/EmilHernvall/dnsguide/blob/master/chapter...

    Mine isn't as polished. The command line parsing and output is more thrown together.

    I hardcoded the packet identifier (it's not production code, and I'm only looking up one at a time).

    I didn't use any bit manipulation libraries. I can see they would help because DNS packets don't line up their information with the byte boundaries.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • SPCDNS

    An easy to use DNS library with C and Lua bindings

  • When I wrote my DNS parser [1], I set a follow limit. I'm not sure how viable it would be to limit the pointers to earlier in the packet would be.

    [1] https://github.com/spc476/SPCDNS

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts