DNS server written in Go using the Redis databases such that speed go stonks.
Find a file
P K Navin Shrinivas 79bd43afe0
Fix typo and enhance README clarity
Corrected a typo and improved clarity in the README.
2025-10-17 06:11:40 +05:30
Modules HackNight stufF 2022-10-18 09:06:55 +05:30
.gitignore Added a basic test system 2022-07-01 13:04:48 +05:30
5m_query.xz Additional DNS Queries 2022-10-22 08:05:39 +05:30
10m_query10.xz Enforcing new gitignore and including test files 2022-07-01 13:08:41 +05:30
CONTRIBUTING.md Fixed typo 2022-10-19 14:29:40 +05:30
go.mod LARGE COMMIT 2022-04-27 19:57:40 +05:30
go.sum LARGE COMMIT 2022-04-27 19:57:40 +05:30
main.go updates to load balancing design 2022-07-12 11:08:47 +05:30
README.md Fix typo and enhance README clarity 2025-10-17 06:11:40 +05:30
run.sh add macos support to run.sh 2022-10-23 20:56:32 +05:30
system.conf HackNight stufF 2022-10-18 09:06:55 +05:30
test.sh Enforcing new gitignore and including test files 2022-07-01 13:08:41 +05:30
test2.sh Test file for 5m_query 2022-10-22 08:12:27 +05:30

GRDNS : The easy to setup DNS caching server

In memory dns caching server.

Basic Info

  • Built using GoLang and redis.
  • Clean and effective code
  • Hash based database storing records (redis)
  • Multi threading done right
  • Using low overhead libraries wherever possible
  • Using in memory data as much as possible when also maintaining stability

Building locally :

Note : this project is built for the linux system, compatibility with windows is not confirnmed(This can be an issue, propose if you wish to). To run this project, you need to have golang and redis installed. MacOS users can run brew install go redis to install go and redis

After getting the dependencies, you can run:

$ ./run.sh

Should compile and start the DNS server.

Testing locally :

  • A single resolve test can be done like so :
$ dig @0.0.0.0 google.com

It's best you run the above command twice. This is because the first resolve doesn't hit the cache, second will.

  • A performance test can be done like so after starting the DNS server (needs dnsperf installed before hand):
./test.sh --10mtest

Maintainers in charge :

Navin Shrinivas Mukund Deepak

Performance :

  • Down below we see comparision to cloudflare and google dns server (which note runs on very powerful hardware, mine runs simply on my computer) :
  • GRDNS : ~110QP/s || google's DNS : ~360QP/s || cloudflare's DNS : 220QP/s
  • images :

GRDNS

google dns

cloudflare dns