dnspython is a DNS toolkit for Python that supports most DNS record types. It is useful for making DNS queries, performing zone transfers, and sending dynamic updates, with support for TSIG-authenticated messages and EDNS0, plus high- and low-level APIs. The project also offers optional integrations such as DNS-over-HTTPS, DNS-over-TLS, DNS-over-QUIC, DNSSEC, IDNA, and async support (asyncio and Trio).
Project status
- Actively maintained, with very recent upstream updates (last push 2026-09-05) and a latest published update (v2.8.0 on 2025-09-07), indicating ongoing development rather than maintenance-only mode.
- Apparent update cadence is moderately steady, roughly annual for recent major versions (v2.7.0 on 2024-10-05, v2.8.0 on 2025-09-07), with additional pre-releases (v2.8.0rc1 on 2025-09-01).
AI summary generated
Recent updates
v2.8.0
dnspython 2.8.0 updates the project to require Python 3.10+, and the repository changes suggest improved type checking and CI coverage for newer Python versions. The library diff also bumps several optional feature dependency minimum versions (DNSSEC, DoH, DoQ, IDNA, Trio) and introduces new TLS-related plumbing, including a no-ssl stub implementation.
Featuresv2.8.0rc1
v2.8.0rc1 has no release notes provided by the publisher (none found in the release payload). The code diff shows substantial internal and ecosystem changes, including Python compatibility updates, dependency minimum version bumps, CI/tooling updates, and new B-tree based modules.
v2.7.0
dnspython 2.7.0 is a minor release that, according to the release notes, increases the minimum supported Python version to 3.9. The release notes provided here are otherwise minimal, while the code diff shows several functional additions and some internal behavior changes.
BreakingFeaturesv2.6.1
dnspython 2.6.1 is a bug fix release focused on correcting how the stub resolver handled UDP truncated (TC) responses. It includes a mitigation for a potential DoS condition (CVE-2023-29483) related to accepting forged responses before legitimate ones, ensuring the resolver ignores bad packets and continues listening until timeout.
Securityv2.6.0
dnspython 2.6.0 is presented as a security-focused release for the TuDoor DoS scenario (CVE-2023-29483), where dnspython stub resolver behavior could be disrupted by forged UDP responses. The release notes claim the mitigation works by ignoring bad packets and continuing to wait for a legitimate response until the query timeout expires.
Securityv2.5.0
dnspython 2.5.0 is presented with essentially no inline release-note details (the notes defer to the “What’s New” page). The code diff shows multiple internal and async/networking changes, plus some wire-encoding refactors in rdtypes, and at least one public-ish API signature change (dns.asyncquery.tls).
Featuresv2.4.2
dnspython 2.4.2 is a bug fix release. The release notes do not list specific changes, so developers should review the documentation "What's New" page for the detailed fixes and any potential behavior changes.