GitHunt
LA

lazywalker/lazydns

A plugin-base DNS server/forwarder implementation in Rust, inspired by mosdns

LazyDNS

Rust
License: GPL-3.0
CI
crates.io
docs.rs
codecov
Dependabot
Maintenance

Documentation

Current Status:

  • DNS Protocol & Servers (UDP/TCP/DoT/DoH/DoQ)
  • Plugin System & Core Plugins
  • LazyCache with Stale-Serving - Background refresh cache with TTL support
  • Environment Variable Configuration - Runtime config via METRICS_ADDR, ADMIN_ADDR, etc.
  • Prometheus Monitoring - Metrics collection, health checks, and admin interface
  • Advanced Condition Matching - Flexible rule-based DNS query processing with 30+ matching plugins (Hosts, Domain, IP, GeoIP, GeoSite ...)
  • Caching with LRU eviction
  • Encrypted DNS (DoT RFC 7858, DoH RFC 8484, DoQ RFC 9250)
  • Multi-profile builds (minimal/full) with UPX compression
  • Documentation and Docker packaging

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Acknowledgments

  • mosdns - The original inspiration
  • hickory-dns - Rust DNS library
  • The Rust community

Languages

Rust85.7%Svelte7.3%TypeScript5.4%Shell0.4%CSS0.3%Python0.2%Makefile0.2%Dockerfile0.1%HTML0.1%JavaScript0.1%

Contributors

GNU General Public License v3.0
Created December 14, 2025
Updated March 9, 2026
lazywalker/lazydns | GitHunt