Authoritative DNS Server
Find a file
Brandon L Black c9ecfa786a README updates
* Remove ref to defunct Google Groups
* Add note about Codeberg stuff
2026-04-07 17:13:12 -05:00
.github/workflows Meta-updates for CI stuff 2024-03-27 10:35:25 -05:00
acaux Require ragel for tarball builds (and related refactoring) 2014-10-27 07:38:33 +00:00
docs Meta-updates for CI stuff 2024-03-27 10:35:25 -05:00
include Robustness improvements for replacement launching 2023-01-25 20:03:30 +00:00
init systemd template: update commentary, esp about sec 2019-02-11 14:09:50 +00:00
libgdmaps style fixup 2024-02-14 10:19:00 -06:00
libgdnsd sun_set_path: use overall size of sockaddr_un 2024-03-04 11:18:51 -06:00
m4 Update ax_pthread.m4 from autoconf-archive 2021-03-18 16:51:47 +00:00
qa Workaround a newer valgrind+glibc bug 2024-09-19 15:15:53 -05:00
src Add sockaddr cast for MUSL 2025-12-09 12:58:43 -05:00
t testsuite: update for Net::DNS 1.53 breakage 2025-10-09 17:26:04 -05:00
.astylerc C Code formatting 2018-08-21 11:43:21 +00:00
.gitignore Travis: SonarCloud setup and other stuff 2019-02-07 21:37:53 +00:00
.gitmodules plugin_geoip: Remove GeoIP1 support 2018-08-21 11:43:21 +00:00
AUTHORS NEWS update and version bump for 2.3.0 2017-11-20 22:36:20 +00:00
configure.ac Update NEWS and configure.ac for 3.9.0-unreleased 2025-10-23 13:01:05 -05:00
COPYING Initial import from svn trunk r1553 2012-02-01 00:59:57 -05:00
INSTALL Update INSTALL to mention libsodium 1.0.12+ 2024-09-19 15:23:57 -05:00
Makefile.am Remove the vendored blake2b implementation 2024-09-16 12:49:08 -05:00
NEWS Update NEWS and configure.ac for 3.9.0-unreleased 2025-10-23 13:01:05 -05:00
NEWS.old Move old NEWS history out of the way 2019-02-15 14:37:45 +00:00
README.md README updates 2026-04-07 17:13:12 -05:00
VERSION3.md Internal renames of some terminology 2021-03-16 00:07:17 +00:00

C/C++ CI CodeQL

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 C, and uses pthreads with libev and liburcu to attain very high performance, low latency service. It does not offer any form of caching or recursive service, and does not support DNSSEC. There's a strong focus on making the code efficient, lean, and resilient. The code has a decent regression testsuite with full branch coverage on the core packet parsing and generation code, and some scripted QA tools for e.g. valgrind validation, clang-analyzer, etc.

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.

Resources

Project site: https://gdnsd.org/

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

The code is hosted at Github: https://github.com/gdnsd/gdnsd/

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

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

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

The documentation is included in the source tree in POD format and installed as manpages and textfiles on installation.

Note: Codeberg migration in progress for 4.x

There is an evolved development branch that is geared towards producing an eventual future 4.0 release. The changes are significant, not the least of which is that the entire project has been ported from C to Zig. Active development of that future will happen on Codeberg at: https://codeberg.org/gdnsd/gdnsd

This github repo will remain for quite some time, primarily as the stable home base of the 3.x (and older) releases, and will be the source of any further 3.x releases.

gdnsd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

gdnsd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with gdnsd. If not, see http://www.gnu.org/licenses/.