- Updated: April 2, 2026
- 6 min read
Numa DNS: High‑Performance DNS Solution Boosts Linux Networking
Skip to content You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert razvandimescu / numa Public Notifications You must be signed in to change notification settings Fork 0 Star 20 Code Issues 0 Pull requests 1 Actions Projects Security and quality 0 Insights Additional navigation options Code Issues Pull requests Actions Projects Security and quality Insights mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History122 Commits122 Commits.github/workflows.github/workflows assetsassets benchbench benchesbenches blogblog scriptsscripts sitesite srcsrc teststests .gitignore.gitignore Cargo.lockCargo.lock Cargo.tomlCargo.toml DockerfileDockerfile LICENSELICENSE MakefileMakefile README.mdREADME.md com.numa.dns.plistcom.numa.dns.plist deploy.shdeploy.sh install.shinstall.sh numa.servicenuma.service numa.tomlnuma.toml View all filesRepository files navigationREADMEMIT licenseNuma 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 On macOS and Linux, numa runs as a system service (launchd/systemd). On Windows, numa auto-starts on login via registry.Local Services Name your dev services instead of remembering port numbers: curl -X POST localhost:5380/services \ -d ‘{“name”:”frontend”,”target_port”:5173}’ Now https://frontend.numa works in your browser — green lock, valid cert, WebSocket passthrough for HMR. No mkcert, no nginx, no /etc/hosts. Add path-based routing (app.numa/api → :5001), share services across machines via LAN discovery, or configure everything in numa.toml. Ad Blocking & Privacy 385K+ domains blocked via Hagezi Pro.Works on any network — coffee shops, hotels, airports. Travels with your laptop. Three resolution modes: forward (default) — transparent proxy to your existing system DNS. Everything works as before, just with caching and ad blocking on top. Captive portals, VPNs, corporate DNS — all respected. recursive — resolve directly from root nameservers. No upstream dependency, no single entity sees your full query pattern. Add [dnssec] enabled = true for full chain-of-trust validation.auto — probe root servers on startup, recursive if reachable, encrypted DoH fallback if blocked. DNSSEC validates the full chain of trust: RRSIG signatures, DNSKEY verification, DS delegation, NSEC/NSEC3 denial proofs. Read how it works → LAN Discovery Run Numa on multiple machines. They find each other automatically via mDNS: Machine A (192.168.1.5) Machine B (192.168.1.20) ┌──────────────────────┐ ┌──────────────────────┐ │ Numa │ mDNS │ Numa │ │ – api (port 8000) │◄───────────►│ – grafana (3000) │ │ – frontend (5173) │ discovery │ │ └──────────────────────┘ └──────────────────────┘ From Machine B: curl http://api.numa → proxied to Machine A’s port 8000. Enable with numa lan on. Hub mode: run one instance with bind_addr = “0.0.0.0:53” and point other devices’ DNS to it — they get ad blocking + .numa resolution without installing anything.How It Compares Pi-hole AdGuard Home Unbound Numa Local service proxy + auto TLS — — — .numa domains, HTTPS, WebSocket LAN service discovery — — — mDNS, zero config Developer overrides (REST API) — — — Auto-revert, scriptable Recursive resolver — — Yes Yes, with SRTT selection DNSSEC validation — — Yes Yes (RSA, ECDSA, Ed25519) Ad blocking Yes Yes — 385K+ domains Web admin UI Full Full — Dashboard Encrypted upstream (DoH) Needs cloudflared Yes — Native Portable (laptop) No (appliance) No (appliance) Server Single binary, macOS/Linux/Windows Community maturity 56K stars, 10 years 33K stars 20 years New Performance 691ns cached round-trip. ~2.0M qps throughput. Zero heap allocations in the hot path. Recursive queries average 237ms after SRTT warmup (12x improvement over round-robin). ECDSA P-256 DNSSEC verification: 174ns.Benchmarks → Learn More Blog: Implementing DNSSEC from Scratch in Rust Blog: I Built a DNS Resolver from Scratch Configuration reference — all options documented inline REST API — 27 endpoints across overrides, cache, blocking, services, diagnostics Roadmap DNS forwarding, caching, ad blocking, developer overrides .numa local domains — auto TLS, path routing, WebSocket proxy LAN service discovery — mDNS, cross-machine DNS + proxy DNS-over-HTTPS — encrypted upstream Recursive resolution + DNSSEC — chain-of-trust, NSEC/NSEC3 SRTT-based nameserver selection pkarr integration — self-sovereign DNS via Mainline DHT Global .numa names — DHT-backed, no registrar License MIT About Portable DNS resolver in Rust — .numa local domains, ad blocking, developer overrides Topics resolver dns rust service-discovery reverse-proxy tokio developer-tools dns-server local-development ad-blocking Resources Readme License MIT license Uh oh! There was an error while loading. Please reload this page. Activity Stars 20 stars Watchers 1 watching Forks 0 forks Report repository Releases 13 v0.9.0 Latest Apr 1, 2026 + 12 releases Packages 0 Uh oh! There was an error while loading. Please reload this page. Contributors Uh oh!There was an error while loading. Please reload this page. Languages Rust 72.5% HTML 19.3% Shell 6.7% Python 1.0% Makefile 0.2% CSS 0.2% Dockerfile 0.1% You can’t perform that action at this time. [{“Name”:”.github/workflows”,”Last commit message”:””,”Last commit date”:””},{“Name”:”assets”,”Last commit message”:””,”Last commit date”:””},{“Name”:”bench”,”Last commit message”:””,”Last commit date”:””},{“Name”:”benches”,”Last commit message”:””,”Last commit date”:””},{“Name”:”blog”,”Last commit message”:””,”Last commit date”:””},{“Name”:”scripts”,”Last commit message”:””,”Last commit date”:””},{“Name”:”site”,”Last commit message”:””,”Last commit date”:””},{“Name”:”src”,”Last commit message”:””,”Last commit date”:””},{“Name”:”tests”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.gitignore”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Cargo.lock”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Cargo.toml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile”,”Last commit message”:””,”Last commit date”:””},{“Name”:”LICENSE”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Makefile”,”Last commit message”:””,”Last commit date”:””},{“Name”:”README.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”com.numa.dns.plist”,”Last commit message”:””,”Last commit date”:””},{“Name”:”deploy.sh”,”Last commit message”:””,”Last commit date”:””},{“Name”:”install.sh”,”Last commit message”:””,”Last commit date”:””},{“Name”:”numa.service”,”Last commit message”:””,”Last commit date”:””},{“Name”:”numa.toml”,”Last commit message”:””,”Last commit date”:””},{}]
Andrii Bidochko
CTO UBOS
Andrii Bidochko is an AI entrepreneur and researcher focused on AI agents, reinforcement learning, and autonomous systems. He writes about the technologies shaping the future of machine intelligence, from frontier models and agent architectures to real-world AI applications.