slimDNS Documentation

slimDNS is a simple, minimal and flexible DNS server.
It doesn’t require external dependencies and work off Python 3.8 builtins.

Here’s a demo domain using minimal setup:
import slimDNS

dns = slimDNS.server(slimDNS.UDP)

dns.run()
@dns.records
def records(server):
    return {
        "hvornum.se" : {
              "A" : {"target" : "46.21.102.81", "ttl" : 60},
              "SOA" : {"target" : "hvornum.se", "ttl" : 60},
              "NS" : {"target" : "hvornum.se", "ttl" : 60, "priority" : 10}
        }
    }

Some of the features of slimDNS are:

  • No external dependencies or installation requirements. Runs without any external requirements or installation processes.
  • Single threaded. slimDNS takes advantage of select.epoll() (select.select() on Windows) to achieve blazing speeds without threading the service. Threads are allowed and welcome, but the core code relies on using as few threads and overhead as possible.

Getting help