getdns is a modern, asynchronous DNS API that is specifically aimed at application developers and operating system distributors. It offers a modern, flexible interface that allows access to advanced DNS features without requiring detailed knowledge of the inner workings of DNS.
The getdns API can be used to make all types of DNS information easily available in a variety of programs. It offers flexible transport options, roadblock (firewall and NAT) avoidance, one-step DNSSEC validation, encrypted connections using the DNS-over-TLS standard and a host of other features. In addition to the C API, language bindings are also available for Python, PHP, and Node.js.
The major features of the API are:
- Full support for event-driven programming
- Support DNSSEC in multiple ways
- Mirroring of the resolution in getaddrinfo()
- Easily supports all RRtypes, even those yet to be defined
Stubby is stub resolver implementation that uses getdns. It is an application that acts as a thin layer on top of the getdns functionality. This means it can communicate asynchronously, use DNS-over-TLS to ensure DNS privacy, perform DNSSEC validation and has access to all the other features getdns has.
getdns and Stubby have a dedicated website at getdnsapi.net.