At some point during 2003, my friend Bjørn Reese (from Dancer) and I were discussing back and forth and planning to maybe create our own asynchronous DNS/name resolver library. We felt that the synchronous APIs provided by gethostname()
and getaddrinfo()
were too limiting in for example curl. We could really use something that would not block the caller.
While thinking about this and researching what was already out there, I found the ares library written by Greg Hudson. It was an effort that was almost exactly what we had been looking for. I decided I would not make a new library but rather join the ares project and help polish that further to perfect it – for curl and for whoever else who wants such functionality.
It was soon made clear to me that the original author of this library did not want the patches I deemed were necessary, including changes to make it more portable to Windows and beyond. I felt I had no choice but to fork the project and instead I created c-ares. It would show its roots but not be the same. The c
could be for curl, but it also made it into an English word like “cares” which was enough for me.
The first c-ares release I did was called version 1.0.0, published in February 2004.
The ares project did not have a website, but I am of the opinion that a proper open source project needs one, to provide downloads and not the least its documentation etc. A home. I created a basic c-ares website and since then I have hosted it on my server on the behalf of the c-ares project.
The was available as c-ares.haxx.se for many years but was recently moved over to c-ares.org. It has never been a traffic magnet so quite easy to manage.
In the backseat
In recent years, I have not participated much in the c-ares development. I have had my hands full with curl while the c-ares project has been in a pretty good shape and has been cared for in an excellent manner by Brad House and others.
I have mostly just done the occasional website admin stuff and releases.
Transition
Starting now, the c-ares website is no longer hosted by me. A twenty years streak is over and the website is now instead hosted on GitHub. I own the domain name and I run the DNS for it, but that is all.
The plan is that Brad is also going to take over the release duty. Brad is awesome.
> We could really use something that would not block the caller.
I’m not familiar with how Ares does this, but I’d make the request itself an external problem. The library could generate a question and decode an answer. Asking the question would be ignored, however. It’s very simple to do this without blocking, then: Ask the question with UDP, do whatever can be done, and eventually check for the answer. Blocking behaviour becomes irrelevant once no useful work is there to do.
> The ares project did not have a website, but I am of the opinion that a proper open source project needs one, to provide downloads and not the least its documentation etc.
My works are available over Gopher, for those who prefer simple access to things. I don’t currently offer FTP access, but it would also be nice. The WWW taking over everything is bad.
> Starting now, the c-ares website is no longer hosted by me. A twenty years streak is over and the website is now instead hosted on GitHub.
It’s odd to me how someone so concerned with the WWW would participate in its destruction like this.
@Verisimilitude: what exactly do you propose I would do instead of passing on the responsibility of this hosting to people who care for it? I must have missed your offer to take care of this project in way that does not “participate in its destruction”.
It is very easy to point out to others what they should do with their spare time.
@Daniel Stenberg
I don’t necessarily have a good answer. Regardless, when almost all websites are actually hosted by Google, Facebook, Amazon, Cloudflare, and MicroSoft, that will be the death of the WWW, not that I’ll miss it, but still.