What is it?

JDNS is a simple DNS implementation that can perform normal DNS queries of any record type (notably SRV), as well as Multicast DNS queries and advertising. Multicast support is based on Jeremie Miller’s “mdnsd” implementation.

For maximum flexibility, JDNS is written in C with no direct dependencies, and is licensed under the MIT license. Your application must supply functionality to JDNS, such as UDP sending/receiving, via callbacks.

There are wrappers available for Qt users, and there is a Qt-based command-line tool called ‘jdns’ that can be used to test functionality.



What do I need to be able to use it?

As mentioned, JDNS has no dependencies, although it does leave you with some responsibilities. You must provide your own UDP support (via the callbacks), and you probably want to integrate JDNS into your application’s existing event system. The Qt wrappers depend on Qt, of course.

What is the development plan?

JDNS is considered complete.

Where can I get it?

Source: jdns-2.0.4.tar.bz2

The latest source can be found in the ‘jdns’ module of the Psi Git.  See jdns.h for the C API, qjdns.h for a simple Qt wrapper, and qjdnsshared.h for a very high-level wrapper. QJDnsShared is documented (under its original name, JDnsShared).

Last updated August 26th, 2016.