Skip to content
Tech News
← Back to articles

Show HN: I built a DNS resolver from scratch in Rust – no DNS libraries

read original get Rust DNS Resolver Kit → more articles
Why This Matters

This innovative DNS resolver built from scratch in Rust offers a portable, privacy-focused solution for consumers and developers alike. By enabling ad blocking, local service naming, and customizable DNS configurations without relying on cloud services or complex setups, it empowers users to have greater control over their network experience. Its lightweight design and cross-platform compatibility make it a significant advancement in personal network management tools for the tech industry.

Key Takeaways

Numa

DNS you own. Everywhere you go. — numa.rs

A portable DNS resolver in a single binary. Block ads on any network, name your local services ( frontend.numa ), and override any hostname with auto-revert — all from your laptop, no cloud account or Raspberry Pi required.

Built from scratch in Rust. Zero DNS libraries. RFC 1035 wire protocol parsed by hand. Caching, ad blocking, and local service domains out of the box. Optional recursive resolution from root nameservers with full DNSSEC chain-of-trust validation. One ~8MB binary, everything embedded.

Quick Start

# macOS brew install razvandimescu/tap/numa # Linux curl -fsSL https://raw.githubusercontent.com/razvandimescu/numa/main/install.sh | sh # Windows — download from GitHub Releases # All platforms cargo install numa

sudo numa # run in foreground (port 53 requires root/admin)

Open the dashboard: http://numa.numa (or http://localhost:5380 )

Set as system DNS:

Platform Install Uninstall macOS sudo numa install sudo numa uninstall Linux sudo numa install sudo numa uninstall Windows numa install (admin) + reboot numa uninstall (admin) + reboot

... continue reading