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
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.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiodns-0.3.2.tar.gz | 4.2 kB | Details |
Release files / aiodns-0.3.2.tar.gz
| Download URL | aiodns-0.3.2.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f3c85ec02fbaa3d2139746f4c5bebfda3eb7230d50e7390f92a93442d3be3e45
|
|
BLAKE2b-256 checksum How to use checksums |
058e5f9004e113602f1119d4effd3675dfface906bccd372bc50ce435a7cd286
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |