Crate kapiti

source ·

Modules

  • 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