Local and Redis cache clients.
Clients for querying upstream DNS servers over various protocols/methods
Parsers/generators for converting raw DNS messages into equivalent framebuffer representations
Utilities relating to Kapiti toml configuration.
Client for downloading data over HTTP to local disk.
Filters/overrides to be applied before querying upstream DNS servers
Implements support for running the hyper HTTP library against smol, not tokio.
This allows me to stop spending hours every 4-6 months to keep Kapiti on the Tokio upgrade treadmill.
The hyper integration meanwhile is set up to resolve hosts against ourselves, instead of the system resolver.
Listens to a TCP socket for incoming requests, adding them to a channel.
Listens to a UDP socket for incoming requests, adding them to a channel.
Utilities relating to setting up log output.
Runs a DNS query, checking for matching filters or going to the upstream resolver
Configures custom panic handler to exit the process if a worker thread dies.
Wraps one or more DNS clients and performs queries through them
Runs the UDP/TCP listeners and worker threads.
Definitions of serializable framebuffer representations for DNS messages
Shared utility for handling timeouts