JDNS


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.

Features

Why?

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?

The latest source can be found in the ‘iris/src/jdns’ module of the Psi Git.  See jdns.h for the C API, and qjdns.h for a simple Qt wrapper.

There is also a very high-level wrapper called JDnsShared, that is part of the IrisNet base system but can be used stand-alone. It can be found in the ‘iris/src/irisnet’ module. JDnsShared is also documented.


Last updated March 18th, 2007.