# Knot DNS Resolver

The Knot DNS Resolver is a minimalistic caching resolver implementation. The project provides both a resolver library and a small daemon. Modular architecture of the library keeps the core tiny and efficient, and provides a state-machine like API for extensions.

- Knot DNS Resolver daemon
  - Configuration
  - Running supervised
  - Enabling DNSSEC
  - CLI interface
  - Scaling out
  - Using CLI tools
- Knot DNS Resolver modules
  - Static hints
  - Statistics collector
  - Query policies
  - Views and ACLs
  - Prefetching records
  - HTTP/2 services
  - DNS Application Firewall
  - Graphite module
  - Etcd module
  - DNS64
  - Renumber
  - DNS Cookies
  - Version
  - Workarounds
  - Dnstap
  - Signaling Trust Anchor Knowledge in DNSSEC
  - Sentinel for Detecting Trusted Keys
  - Priming module
  - Serve stale
  - System time skew detector
  - Detect discontinuous jumps in the system time
- Building project
  - Installing from packages
  - Platform considerations
  - Requirements
  - Building from sources
  - Getting Docker image
- Knot DNS Resolver library
  - Requirements
  - For users
  - For developers
  - Writing layers
  - APIs in Lua
  - API reference
- Modules API reference
  - Supported languages
  - The anatomy of an extension
  - Writing a module in Lua
  - Writing a module in C
  - Writing a module in Go
  - Configuring modules
  - Exposing C/Go module properties

## Indices and tables

- Index
- Module Index
- Search Page