(2026-05-20)
Matched the
.localmDNS suffix case-insensitively so hostnames such asMyHost.LOCALare routed through mDNS as required by RFC 6762 -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`65`.
Cancelled the in-flight mDNS and DNS lookup tasks when
AsyncDualMDNSResolver.resolve()is itself cancelled, so a cancelled lookup no longer orphans tasks that keep running against the sharedzeroconfinstance -- by :user:`bdraco`.Related issues and pull requests on GitHub: :issue:`69`.
Made resolver
close()idempotent -- a second call on a resolver that owns its :class:`~zeroconf.asyncio.AsyncZeroconf` no longer raises :exc:`AttributeError` -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`74`.
Stopped :class:`~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver` from returning the same address twice when the mDNS and DNS resolvers agree on a
.localname -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`87`.
Added async context manager support to :class:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver` and :class:`~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver`, so
async withcloses the resolver automatically -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`90`.
Dropped Python 3.9 support; the minimum supported Python version is now 3.10 -- by :user:`bdraco`.
Related issues and pull requests on GitHub: :issue:`62`.
Corrected the public API module docstring (it described an unrelated project), fixed a grammar error in the package docstring, and normalized the indentation of the class directives in the API reference so the parameter lists render correctly, and added an intersphinx mapping to
python-zeroconfso theasync_zeroconfparameter cross-references resolve under the nitpicky docs build -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`67`.
Fixed the README quick-start example leaking the resolver: a resolver passed to
aiohttp.TCPConnectoris owned by the caller, so it is now closed in afinallyblock -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`80`.
Completed the documentation landing page: filled the empty Introduction section, added an installation snippet, and added a runnable usage example that closes the resolver in a
finallyblock. Also fixed the same resolver leak in theAsyncMDNSResolverreference example -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`84`.
Documented the :meth:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.resolve` and :meth:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.close` methods of :class:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver` and :class:`~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver` in the API reference, including the
.localrouting behaviour and the :class:`~zeroconf.asyncio.AsyncZeroconf` ownership semantics of :meth:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.close` -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`85`.
Added a usage example for :class:`~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver` in the API reference and documented the
familyparameter of :meth:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver.resolve` (socket.AF_INET,socket.AF_INET6andsocket.AF_UNSPEC). Also clarified thatmdns_timeout=Noneis cache-only, the same as0-- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`86`.
Documented :class:`~aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver` in the README quick start so the landing page covers the full public API, not just :class:`~aiohttp_asyncmdnsresolver.api.AsyncMDNSResolver` -- by :user:`aiolibsbot`.
Related issues and pull requests on GitHub: :issue:`89`.
The packaging metadata switched to including an SPDX license identifier introduced in PEP 639 -- by :user:`cdce8p`.
As a side effect, the minimum required version of
setuptoolsincreased to v77.Related issues and pull requests on GitHub: :issue:`36`.
Fixed
MANIFEST.into graft thesrc/tree and dropped references to the non-existentpackaging/directory andNOTICEfile, removing spurious build warnings. Thepy.typedmarker is now shipped explicitly viapackage-data, and the distribution advertises the Python 3.10--3.13, CPython, PyPy, andTyping :: Typedclassifiers -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`68`.
Added support for Python 3.14: the test matrix now runs against 3.14 and the distribution advertises the
Programming Language :: Python :: 3.14classifier -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`81`.
Expanded the public-API regression test to cover
AsyncDualMDNSResolver,api.__all__, and theaiohttp.resolver.AsyncResolverdrop-in subclass guarantee for both resolvers.Related issues and pull requests on GitHub: :issue:`71`.
Hardened the CI workflow: the default
GITHUB_TOKENis now restricted tocontents: read, and a concurrency group cancels superseded in-progress pull request runs to conserve CI resources -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`72`.
Enabled the mypy
disallow_untyped_defs,disallow_incomplete_defs, andcheck_untyped_defschecks so that newly added functions insrc/andtests/must carry complete type annotations -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`73`.
Migrated CI runners from
actions/setup-pythontoastral-sh/setup-uvso dependencies and Python interpreters are provisioned viauvinstead of systempip-- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`76`.
Replaced the
pyupgradepre-commit hook with Ruff'sUPrule set so a single linter handles syntax modernization, targeting Python 3.10+ -- by :user:`aiolibsbot`.Related issues and pull requests on GitHub: :issue:`78`.
(2025-02-14)
Improved MDNS resolver performance when the name is already in the cache -- by :user:`bdraco`.
Related issues and pull requests on GitHub: :issue:`27`.
(2025-02-05)
Created the :class:`aiohttp_asyncmdnsresolver.api.AsyncDualMDNSResolver` class to resolve
.localnames using both mDNS and DNS -- by :user:`bdraco`.Related issues and pull requests on GitHub: :issue:`23`.
(2025-01-31)
Fixed imports not being properly sorted -- by :user:`bdraco`.
Related issues and pull requests on GitHub: :issue:`21`.
(2025-01-30)
Migrated to using zeroconf's built-in resolver classes -- by :user:`bdraco`.
Related issues and pull requests on GitHub: :issue:`19`.
(2025-01-05)
Initial release