Zeroconf
Frankenstein marriage of net-mdns and dnssd.
Installation
sudo gem sources -a http://gems.github.com
sudo gem install lachie-zeroconf
Usage
Use zeroconf like dnssd. If you find a disparity between the pure and ext that trips you up, send me a patch!
Currently I’m thinking that the interface should be more dnssd-like, since I develop an a mac and get that for free :)
The basic discovery and publishing interfaces are similar. However the details, semantics (esp threading model, exceptions) and implementations are obviously quite different.
Raison d’être
The interfaces of the C-based dnssd and pure ruby net-mdns are quite similar. However, there’s no gem-based mechanism for switching between them based on availability.
This has lead to the forking of many of the *jour apps into dnssd and net-mdns based versions.
Zeroconf provides:
-
a json-gem-style way of falling back to the pure-ruby implementation if the ext doesn’t work.
-
bridging discrepancies between the two extant libraries’ implementations.
-
perhaps a rubycocoa based implementation for osx.
Additionally, I’m hoping that this fork will breathe new life into the maintenance and development of the code; net-mdns 0.4.0 was released on 2006-05-30; dnssd 0.6.0 was released on 2004-10-07.
Thanks
To the original authors of
-
dnssd: Charlie Mills, Rich Kilmer, Chad Fowler and Stuart Cheshire.
-
net-mdns: Sam Roberts
TODO
-
make the build failing warn but be non-fatal, so that the gem will install on systems without dnssd native libraries.
-
make a windows gem.
-
continue bridging discrepancies between dnssd and net-mdns interfaces