Skip to main content

Simple DNS resolver for asyncio

https://secure.travis-ci.org/saghul/aiodns.png?branch=master

aiodns provides a simple way for doing asynchronous DNS resolutions with a synchronous looking interface by using pycares.

Example

import asyncio
import aiodns

loop = asyncio.get_event_loop()
resolver = aiodns.DNSResolver(loop=loop)
f = resolver.query('google.com','A')
result = loop.run_until_complete(f)
print(result)

The following query types are supported: A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SRV, TXT.

API

The API is pretty simple, two functions are provided in the DNSResolver class:

  • query(host, type): Do a DNS resolution of the given type for the given hostname. It returns an instance of asyncio.Future.

  • cancel(): Cancel all pending DNS queries. All futures will get DNSError exception set, with ARES_ECANCELLED errno.

Running the test suite

To run the test suite: python test_aiodns.py

Author

Saúl Ibarra Corretgé <saghul@gmail.com>

License

aiodns uses the MIT license, check LICENSE file.

Python versions

Python 3.4 is natively supported. Python 3.3 supported using the asyncio package. Older Python versions(2.6 - 3.2) are supported using trollius.

Contributing

If you’d like to contribute, fork the project, make a patch and send a pull request. Have a look at the surrounding code and please, make yours look alike :-)

Metadata

Release files for aiodns 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiodns 0.3.1
File Size Uploaded Provenance
aiodns-0.3.1.tar.gz 4.1 kB Without provenance Details

Release files / aiodns-0.3.1.tar.gz

Download URL aiodns-0.3.1.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3138c10391903202325b38692b5dc0c2c1eb6d0db07bcce96e0384e7da95b421
BLAKE2b-256 checksum
How to use checksums
ef55d2e44f0b43ae2ba9ba6ec37122e1dc381d2f44353154999c0a8ab5adf4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for aiodns 0.3.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page