Finally back blogging… it’s been a while. Today I bring you a new pycares release: 3.1.0
pycares is a Python module which provides an interface to c-ares. c-ares is a C library that performs DNS requests and name resolutions asynchronously.
This release was relatively small, but I’m really happy about the automation work that I managed to do before the release, which should help with making the next releases faster and better.
Thanks to the automation work this release includes binary wheels for Python 3.5-3.8 on Windows, macOS and GNU/Linux.
How is this done? Well, pycares is now using 3 different CIs:
- Travis: runs tests on GNU/Linux and it builds release wheels for all 3 platforms (this las key bit is new!)
- GitHub Actions: runs tests on macOS
- AppVeyor: runs tests on Windows
Thanks to these 3 free services, I couldn’t have done it without them! ❤️ Also huge thanks to Joe Rickerby for creating cibuildwheel it really made this a whole lot easier.
Tonight I’m happy to announce that pycares (the Python bindings for c-ares, an asynchronous DNS resolver) has reached version 2.0.0.
This release contains a few important features:
- CFFI port for PyPy (it can optionally also be used in CPython)
- Python 3.5 support
- c-ares updated to version 1.11.1
Plus some minor bugfixes. I’d like to thank Jesse (@boytm) for the CFFI patch, that was a massive contribution, thank you so much!
Binary wheels are available for Python 2.7, 3.3, 3.4 and 3.5 on Windows (both 32 and 64 bits), checkout the PyPI page.
Long time no blog!
Today I’m happy to announce pycares 1.0.0 was just released. pycares is a Python library which wrapps the c-ares C library, providing asynchronous DNS resolution capability to different applications.
The full changelog can be checked here, but these are the main highlights:
- Return nametuple-like objects for all query types
- Return TTL information
- Dropped support for old Python versions
- AppVeyor CI integration
- Binary wheels available for 32 and 64 bit Windows (thanks AppVeyor!)
As usual, the code is available on GitHub and the documentation is here.
Hi! As you all probably know DNS lookups can get tricky at times, since they block. c-ares is a completely asynchronous DNS resolver written in C, and pycares exports its functionality to Python.
After giving the idea some thought I decided to remove the c-ares based resolver which I had implemented in pyuv and created a standalone package instead.
This way, the implementation is completely independent and it can be used with any asynchronous library like Eventlet, Gevent, pyev, …
Since the c-ares build process can be a bit tricy and uses autotools I decided to use a modified version of the build system used in libuv which is based in plain Makefiles.
You can get the source code on the GitHub repository and checkout the documentation here.
Hope you like it!