Skip to content
Cross-platform zeroconf (aka bonjour™) library.
Ruby C
Latest commit e45f8bd Jun 29, 2008 @lachie another tweak
Failed to load latest commit information.
ext Initial import. Jun 29, 2008
lib Initial import. Jun 29, 2008
originals
samples Initial import. Jun 29, 2008
test Initial import. Jun 29, 2008
.gitignore
COPYING added proper attribution to license Jun 29, 2008
README.rdoc another tweak Jun 29, 2008
Rakefile
zeroconf.gemspec Initial import. Jun 29, 2008

README.rdoc

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

Something went wrong with that request. Please try again.