"Francis Cianfrocca" <garbagecat10 / gmail.com> wrote on 30/10/2006 
21:12:41:

> I need an asynchronous client that I can add to EventMachine, so I need 
pure
> Ruby or C/C++. If you want to discuss further, we should take it 
off-list to
> avoid boring everyone else :-)

I've looked at EventMachine, and was impressed with it. I'd be very happy 
if you were able to use some of my code with it. pnet-dns is available 
now, but is very ugly, being a direct port of a perl project (and a badly 
implemented perl project, at that). dnsruby will be available in the next 
few months, but will be a real DNS library, based on dnsjava.

pnet-dns is pure Ruby, and dnsruby will be as well. I have had to make use 
of the Socket class for TCP (I need to control the source port), which I 
believe may be implementation-dependent. However, I know that it runs fine 
on Windows, Linux and Solaris.

I'm going to model dnsruby on dnsjava, as dnsjava is the best and most 
mature OO API for DNS that I know. However, the non-blocking API will be 
much closer to the dnsjnio project.

My dnsjnio project streams all requests over a single socket, and runs 
them all in a single thread. This allows me to do massive amounts of DNS 
requests concurrently. I will be implementing this approach for dnsruby.

Unfortunately (well, fortunately for me!) I'm off for a three week 
honeymoon in a fortnight, returning just before Xmas. So I'm unlikely to 
get too much dnsruby implemented in the immediate future!

Thanks for your interest.


Alex.