# EmilHernvall/dnsguide

A guide to writing a DNS Server from scratch in Rust

Repository: https://github.com/EmilHernvall/dnsguide
Canonical: https://ross.abutalabs.com/products/dnsguide
License: MIT
License Family: permissive
Topics: rust, dns, udp, tcp, network-programming, dns-server, internet
Last push: 2025-04-28T10:33:26+00:00

## Health v2 (maintenance only)
Score: 40/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 18, release rhythm 35, longevity 100
- inputs: {"age_days": 3703, "days_push": 492, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4665, forks 284 (observed 2026-08-28T04:08:56.516035+00:00)

## What it is
A step-by-step tutorial guide for building a DNS server from scratch in Rust, covering the DNS protocol, stub resolvers, record types, and recursive resolution. Each chapter includes runnable sample code.

## Use cases
- learn how the DNS protocol works
- write a DNS server in Rust from scratch
- understand DNS packet parsing and query resolution
- practice network programming in Rust
- build a recursive DNS resolver

## When to choose
- you want to learn DNS internals by implementing it
- you want a hands-on Rust networking project
- you prefer guided tutorials with incremental sample code

## When to avoid
- you need a production-ready DNS server
- you want a reusable DNS library or crate
- you need DNSSEC or advanced DNS features

## Facets
- artifact type: learning-resource
- maturity: stable
- function: networking, developer-tools, documentation
- domain: networking, developer-tools, tutorials
- platform: rust, cross-platform
- tags: dns, tutorial, rust, network-programming, udp, tcp

## Member repositories
- EmilHernvall/dnsguide (main) score 40

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:56.516035+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:19:25.114405+00:00, confidence not recorded.
  - readme: https://github.com/EmilHernvall/dnsguide (fetched 2026-08-28T04:08:56.516035+00:00, sha 1da2b92ed55b)
- Data as of 2026-08-30T08:39:29.467469+00:00.
