This is an old revision of the document!
Multicast DNS
[http://www.multicastdns.org/ Multicast DNS (mDNS)] is a part of Zero Configuration Networking (Zeroconf) and provides the ability to address hosts using DNS-like names without the need of an existing (unicast), managed DNS server.
The project is divided into two phases each with a set of sub-projects. The sub-projects in phase 1 is more or less listed in the order they will be implemented in (they depend on each other), sub-projects in phase 2 is not listed in the same order as they will be implemented.
Phase 1
Multicast DNS responder (responderd)
This is the core responder daemon, performs multicast dns queries on behalf of clients and acts as a unified cache to all clients. Provides the ability to announce its own mdns records onto the network.
Client API (libmdns)
Provides a easy programming interface to the client side of responderd. Privileges operations include addition/removal of self-claimed records, while non-privileged operations are limited to basic host lookup routines.
NSS module
Uses libmdns and hooks into the name-service switch system to expose mdns aware-versions of gethostby{name,name2,addr} and similar functions.
Command line utility
Utility named mdns (or similar) to provide basic host name lookup for debugging purposes and to provide a way to dynamically add and remove self-claimed mdns records.
Phase 2
Avahi library wrapper (mdns_compat_avahi)
A wrapper library around libmdns to allow avahi-aware applications to work with responderd.
Apple library wrapper (mdns_compat_apple)
A wrapper library around libmdns to allow apple mdns-aware applications to work with responderd.
Service Discovery integration
[:ServiceDiscovery:Service Discovery] is a beast of its own.