RULI stands for Resolver User Layer Interface. It's a library built on top of an asynchronous DNS stub resolver. RULI provides an easy-to-use interface for querying DNS SRV resource records. The main goal is to promote wide deployment of SRV-cognizant programs. RULI aims to automatically perform all the SRV logic described by RFC 2782, and to comply with related specifications. As a side-effect, RULI also provides a general-purpose, event-driven, asynchronous, stub DNS resolver. There are bindings for Perl, PHP, Guile/Scheme, Java, and Lua. IPv6 is supported.
| Tags | Internet DNS Software Development Libraries |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Linux |
| Implementation | C |
Recent releases


Changes: An option for allowing CNAME in SRV targets has been added. Some minor bugs have been fixed.


Changes: This release adds support for RFC3484 destination address selection rules and changes ruli_getaddrinfo() to respect the address family specified in hints.


Changes: Fallback MX records are now sorted by priority, and IPv6 addresses are delivered before IPv4 addresses by default. A binding for the Lua language has been added, and specific support for HTTP queries has been added.


Changes: A Java interface has been added and the Perl module has been moved to Net::RULI to match the CPAN namespace.


Changes: An extension for Guile/Scheme has been added.