RubyDNS is a high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon (via RExec). By default it uses rule-based pattern matching. Results can be hard-coded, computed, fetched from a remote DNS server or fetched from a local cache, depending on requirements.
In addition, RubyDNS includes a high-performance asynchronous DNS resolver built on top of EventMachine. This module can be used by itself in client applications without using the full RubyDNS server stack.
Fully programmatic DNS server: integrate with databases, servers and caches seamlessly.
Robust asynchronous DNS client: builds on EventMachine to provide flexible name resolution.
Match incoming DNS requests using regular expressions and resource classes.
Modify requests in-flight to spoof or manipulate DNS responses.
Includes several useful commands for DNS migration, verification and testing.