Introduction
DinoDNS is an event-based, pure-TypeScript DNS server authoring framework.
Unlike most other DNS servers, it is not a standalone application — instead, it is meant to provide a convenient, familiar API to lower the bar for authoring efficient, scalable, bespoke DNS servers.
The core API is based heavily on the Express API with some inspiration from CoreDNS. The server provides a router that helps resolve incoming queries to a plugin chain that performs arbitrary actions on the request and response, such as answering the request, logging, etc.
The framework offers two primary interfaces:
- A lower-level
DefaultServer
abstraction, useful if you want to author a server from scratch - A higher-level
DinoDNS
implementation which provides useful defaults and a sensible plugin interface
Many applications can make use of the higher-level DinoDNS
server, which accepts key plugins (such as storage, caching, logging, etc.) directly as part of its setup.