pypi / aiodns
aiodns
What changed in aiodns 3 to 4, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-21.
1 breaking2 deprecations1 new APIs and options1 performance1 tooling6 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initaiodns 49 changes
Breaking changes 1
Requires pycares >= 5.0.0, a breaking change for projects using an older version.
Deprecations 2
Deprecated; use getaddrinfo() instead.
Deprecated; it still works with backward-compatible result types.
New APIs and options 1
Added a method returning native pycares 5.x DNSResult types.
Fixes and other changes 5
Adds the missing build-backend entry to pyproject.toml so PEP 517 builds from the sdist work without falling back to the deprecated legacy setuptools backend.
query() raises DNSError(ARES_ENODATA) when the answer section has no records of the requested qtype, restoring the pycares 4.x NODATA contract and avoiding AttributeError for CNAME/SOA/PTR callers.
Packaging tools again detect aiodns as MIT-licensed.
Fixes “Future exception was never retrieved” when pycares raises AresError synchronously, for example with malformed hostnames.
Added compatibility for pycares 4.x result types to ease migration.
aiodns 33 changes
Performance 1
Improves performance for socket state handling.
Tooling 1
Build configuration prevents incompatible pycares versions.
Fixes and other changes 1
Prevents the resolver from being garbage collected while queries are in progress.