Authoritative DNS Server
  • Zig 68.8%
  • Perl 24.8%
  • DIGITAL Command Language 4.4%
  • Go Template 1.7%
  • Shell 0.3%
Find a file
Brandon L Black 0650a6ee20
All checks were successful
/ Install and Test (push) Successful in 2m3s
CI: stabilize on Zig 0.16.0 for now
2026-04-22 14:19:42 -05:00
.forgejo/workflows CI: stabilize on Zig 0.16.0 for now 2026-04-22 14:19:42 -05:00
docs Various TTL-related changes 2026-04-22 14:19:39 -05:00
gdmaps Catch up to 0.16 deprecations 2026-04-22 14:19:37 -05:00
gks error name redundancy fixups 2026-04-22 14:19:42 -05:00
init Remove syslog + daemonization 2026-02-25 12:00:00 -06:00
legplug error name redundancy fixups 2026-04-22 14:19:42 -05:00
LICENSES Copyright/License modernization 2025-11-24 13:48:59 -06:00
src error name redundancy fixups 2026-04-22 14:19:42 -05:00
t Split structures between root-of-dns and Zone, etc 2026-04-22 14:19:41 -05:00
tools Catch up to 0.16 deprecations 2026-04-22 14:19:37 -05:00
.gitattributes Set binary git attribute for mmdb files 2025-11-24 13:48:59 -06:00
.gitignore Various minor cleanups, mostly commentary 2026-02-17 09:36:53 -06:00
AUTHORS Copyright/License modernization 2025-11-24 13:48:59 -06:00
build.zig Add gdnsd_keygen tool 2026-04-22 14:19:39 -05:00
COPYRIGHT Copyright/License modernization 2025-11-24 13:48:59 -06:00
INSTALL.md INSTALL: move to Markdown, update a bit 2026-04-22 14:18:55 -05:00
NEWS Fixups for NEWS and configure.ac 2024-11-27 08:33:27 -06:00
README-Zig.md Split structures between root-of-dns and Zone, etc 2026-04-22 14:19:41 -05:00
README.md readme: Fix Bug report link 2026-04-09 19:19:29 +02:00
REUSE.toml REUSE: Add a few missing exception cases 2026-04-22 14:19:34 -05:00
VERSION4.md Various TTL-related changes 2026-04-22 14:19:39 -05:00

Overview

gdnsd is an Authoritative-only DNS server. The initial g stands for Geographic, as gdnsd offers a plugin system for geographic (or other sorts of) balancing, redirection, and service-state-conscious failover. The plugin system can also do things like weighted address/cname records. If you don't care about these features you can ignore them :).

gdnsd is written in Zig and is designed to attain very high performance, resilient, low latency service. It focuses solely on the authserver role, and does not offer any form of caching or recursive service. It also does not (quite yet!) support DNSSEC, but that is coming. The code has a decent regression testsuite with full branch coverage on the core packet parsing and generation code, and a growing set of Zig unit tests.

The geographically-aware features also support the EDNS Client Subnet spec from RFC 7871 for receiving more-precise network location information from intermediate shared caches.

Codeberg

Currently the project is mid-transition from Github to Codeberg. Many links are not yet updated in various places. Most active development is happening on this Zig port in the 3.99-alpha branch for now, and I'll be mainly focused on Codeberg for that (since Zig lives in Codeberg too!). I may still push older 3.x releases of the C codebase through Github for a little while longer, if needed.

Resources

Project site: https://gdnsd.org/

Project: https://codeberg.org/gdnsd/gdnsd

Bug reports: https://codeberg.org/gdnsd/gdnsd/issues

See the INSTALL file for details on prerequisites and build procedure for working from the source tree or a source tarball.

The 3.x (and older) releases of the C codebase were all originally released on Github, and any further minor version bumps needed in 3.x will probably still happen here for continuity.

Project: https://github.com/gdnsd/gdnsd/

Release downloads: https://github.com/gdnsd/gdnsd/releases/

Bug reports: https://github.com/gdnsd/gdnsd/issues

Wikified docs: https://github.com/gdnsd/gdnsd/wiki