EM-Udns 0.2.3 - async DNS resolver for EventMachine based on udns C library

Hi, I announce EM-Udns (gem version 0.2.3):

EM-Udns is an async DNS resolver for EventMachine based on udns C
library. Having most of the code written in C, EM-Udns becomes very
fast. It can resolve DNS A, AAAA, PTR, MX, TXT, SRV and NAPTR records,
and can handle every kind of errors (domain/record not found, request
timeout, malformed response…).

The project in Github, including the README file:

GitHub - ibc/em-udns: An async DNS resolver for EventMachine based on the udns C library

Important changes in 0.2.X releases are:

  • No exception is raised when performing a query (which is not
    friendly within EventMachine), even if an error occurs (such a
    malformed domain name or internal error). Instead
    EM::Deferrable#errback (in EM::Udns::Query object) is called with new
    error arguments (a Ruby Symbol):

    • :dns_error_nxdomain - The domain name does not exist.
    • :dns_error_nodata - The domain exists, but has no data of requested
      type.
    • :dns_error_tempfail - Temporary error, the resolver nameserver was
      not
      able to process our query or timed
      out.
    • :dns_error_protocol - Protocol error, a nameserver returned
      malformed
      reply.
    • :dns_error_badquery - Bad query, name of dn is invalid.
    • :dns_error_nomem - No memory available to allocate query structure.
    • :dns_error_unknown - An unknown error has occurred.