NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #972 most downloaded on PyPI
Simple DNS resolver for asyncio
Last release 4 months ago
20 May 2026
Ships unpredictably
gaps range from 8 days to 2.4 years
Nearly every release is documented
notes for 24 of 24 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
27 releases · first in 2014
Add the missing build-backend entry to pyproject.toml so PEP 517 builds from the sdist work without falling back to the deprecated legacy setuptools b…
DNSError(ARES_ENODATA) from query() 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 (#254).build-backend entry to pyproject.toml so PEP 517 builds from the sdist work without falling back to the deprecated legacy setuptools backend (#252).Restore license metadata that was dropped during the pyproject.toml migration in #244 , so packaging tools again detect aiodns as MIT-licensed ( #250
One column per quarter.
Re-release of 4.0.1; the 4.0.1 wheel build failed because the release workflow still invoked python setup.py after #244 removed setup.py , so 4.0.1 ne
Breaking change : Requires pycares >= 5.0.0
query_dns() method returning native pycares 5.x DNSResult typesquery() method - still works with backward-compatible result typesgethostbyname() method - use getaddrinfo() insteadFull Changelog: v3.6.1...v4.0.0
Bump winloop from 0.3.1 to 0.4.0 by @dependabot [bot] in #210
Full Changelog: v3.6.0...v3.6.1
Fix resolver garbage collection during pending queries
Full Changelog: v3.5.0...v3.6.0
Allows proper cleanup of resources on demand
Full Changelog: v3.4.0...v3.5.0
Added fallback to sock_state_cb if event_thread creation fails
sock_state_cb if event_thread creation fails (#151)
Full Changelog: v3.3.0...v3.4.0
Fix release workflow for breaking changes in upload/download artifact by @bdraco in #148
Full Changelog: v3.2.0...v3.3.0
Update test_query_ptr test to use address with PTR record by @kitterma in https://github.com/saghul/aiodns/pull/114
Full Changelog: https://github.com/saghul/aiodns/compare/v3.1.1...v3.2.0
Add PEP-561 with py.typed by @JCHacking in https://github.com/saghul/aiodns/pull/109
Full Changelog: https://github.com/saghul/aiodns/compare/v3.1.0...v3.1.1
Remove loop= param from asyncio.sleep() to fix tests on Python 3.10 by @mgorny in https://github.com/saghul/aiodns/pull/96
Full Changelog: https://github.com/saghul/aiodns/compare/aiodns-3.0.0...v3.1.0
Release wheels and source to PyPI with GH actions
mypy.ini(changes since version 1.x) - Drop support for Python < 3.5 - Add support for ANY queries - Raise pycares dependency
(changes since version 1.x)
- Raise pycares dependency
- Fix using typing on Python 3.7
- Drop support for Python < 3.5 - Add support for ANY queries - Raise pycares dependency
Add examples with async and await
async and awaitUse per-version requires for wheels
Add DNSResolver.gethostbyname()
Fix including tests and ChangeLog in source distributions
- Use pycares >= 1.0.0 - Fix tests
setup: Fix decoding in non-UTF-8 environments
Adapt to Trollius package rename
Handle case when the Future returned by query() is cancelled
Don't make query() a coroutine, just return the future
- Initial release
Your coding agent can read these notes before it upgrades. Set up the MCP server →