/dnssd

Multicast DNS client for ruby! YAY!

Primary LanguageRuby

USE THIS INSTEAD: https://github.com/tenderlove/zeroconf

= dnssd

home :: https://github.com/tenderlove/dnssd
bugs :: https://github.com/tenderlove/dnssd/issues

* https://developer.apple.com/library/archive/documentation/Networking/Conceptual/dns_discovery_api/Introduction.html

== DESCRIPTION:

DNS Service Discovery (aka Bonjour, MDNS) API for Ruby.  Implements browsing,
resolving, registration and domain enumeration.  Supports avahi's DNSSD
compatibility layer for avahi 0.6.25 or newer.

== FEATURES/PROBLEMS:

* Needs more pie.
* Not all of the DNSSD API is implemented
* Sometimes tests fail

== SYNOPSIS:

See the sample directory (Hint: <tt>gem contents --prefix dnssd</tt>)

Registering a service:

  http = TCPServer.new nil, 80
  
  DNSSD.announce http, 'my awesome HTTP server'

Browsing services:

  require 'dnssd'
  
  DNSSD.browse '_http._tcp.' do |reply|
    p reply
  end

== REQUIREMENTS:

* OS X
* The dns-sd library on other operating systems
* avahi 0.6.25+ (plus libavahi-compat-libdnssd-dev on debian)

== INSTALL:

  sudo gem install dnssd

If you have dnssd installed in a non-standard location you can use the build
options --with-dnssd-dir and --with-dnssd-lib:

  sudo gem install dnssd -- \
    --with-dnssd-dir=/path/to/dnssd \
    --with-dnssd-lib=/path/to/lib/dnssd

Using the default Bonjour SDK install for Windows, the command to build
the Ruby dnssd extension will look like this:

  # Windows 2000 or Windows XP
  sudo gem install dnssd -- \
     --with-dnssd-dir=c:/progra~1/bonjou~1 \
     --with-dnssd-lib=c:/progra~1/bonjou~1/lib/win32
  
  # Windows Vista and later
  sudo gem install dnssd -- \
     --with-dnssd-dir=c:/progra~2/bonjou~1 \
     --with-dnssd-lib=c:/progra~2/bonjou~1/lib/win32

== LICENSE:

Copyright (c) 2004 Chad Fowler, Charles Mills, Rich Kilmer

Copyright (c) 2009 Phil Hagelberg, Aaron Patterson, Eric Hodel

Licensed under the ruby license