DNS client library for recursive resolution with caching, CNAME following, search list expansion, server failover, and EDNS support. Transports: UDP (with TC→TCP fallback), TCP, and DNS-over-TLS. Also provides iterative resolution helpers for walking the DNS hierarchy step by step.
| Module | Description |
|---|---|
| dns.cache | TTL-aware DNS record cache. |
| dns.client | High-level DNS resolver with caching, CNAME following, search list expansion, server failover, retry, and response validation. |
| dns.dnssec | DNSSEC validation primitives: key tag computation, DS digest verification, RRSIG signature verification, and chain-of-trust validation helpers. |
| dns.helpers | Small shared helpers used by both dns.client and dns.iter: numeric/string qtype resolution, query-message building (RD and DO bits parameterized), response validation, and SOA extraction. |
| dns.iter | Iterative DNS resolution helpers. |
| dns.message | Full DNS message encode and decode. |
| dns.name | Domain name operations for the DNS module. |
| dns.types | DNS protocol constants (TYPE, CLASS, RCODE, OPCODE) with forward and reverse lookup tables, and an RDATA codec registry. |
| dns.wire | Cursor-based binary reader and builder-based writer for DNS wire format. |