DNS toolkit for Python supporting almost all record types with high-level and low-level DNS operations
85
Transported DNS queries over UDP, TCP, TLS, and HTTPS
UDP transport
88%
92%
Truncation fallback
80%
100%
TLS lookup
90%
90%
HTTPS lookup
60%
75%
Answer parsing
90%
100%
Domain name modeling and IDNA codecs
IDNA parsing
60%
40%
Canonical ASCII
50%
90%
Unicode output
33%
66%
Hierarchy checks
100%
100%
Suffix derivation
50%
100%
Asynchronous query and resolver APIs with backend selection
Backend choice
75%
100%
Async resolver
100%
100%
A lookup
100%
100%
Dual concurrency
100%
100%
Nameserver override
100%
100%
Thread-safety guidance leveraging immutable types and safe caches
Shared resolver
0%
100%
Thread-safe cache
0%
25%
Immutable results
100%
100%
Negative caching
0%
20%
Timeout override
33%
0%
Concurrent safety
66%
66%
System resolver override/reset for routing socket lookups through dnspython
Resolver setup
100%
100%
Override activation
0%
100%
Default resolver control
0%
0%
Safe restoration
20%
100%
Active status
33%
100%
DNS message composition with EDNS/TSIG and dynamic update support
Dynamic update build
100%
100%
EDNS payload/option
72%
60%
TSIG signing
100%
100%
Wire output & metadata
100%
100%
Dynamic DNS update convenience operations
Update builder
0%
100%
A prereq
0%
100%
A replace
0%
100%
TXT prereq+delete
0%
100%
Transport & rcode
100%
100%
Rdata/RRset creation and serialization
RRset builder
100%
80%
RDATA parsing
100%
100%
Wire serialization
75%
100%
Wire parsing
100%
25%
Canonical order & dedup
66%
33%
DDR-aware resolver discovery and customizable TLS/HTTPS/QUIC resolvers
DDR attempt
20%
100%
Encrypted nameservers
0%
100%
TLS/HTTPS options
40%
90%
Fallback order
100%
100%
Encrypted queries
66%
100%
DNSSEC signing, validation, and DS/DNSKEY helpers
DNSKEY build
53%
33%
Key tag
100%
100%
DS digests
100%
100%
RRset setup
100%
100%
Signing
50%
75%
RRSIG fields
100%
100%
Validation
80%
100%
Install with Tessl CLI
npx tessl i tessl/pypi-dnspython