Quoteing bg-rubytalk@infofiend.com, on Thu, Jan 20, 2005 at 03:27:53AM +0900:
mDNS / Rendezvous is at the top of my list. Although there is a ruby
package for this, it relies on the C rendezvous stuff compiled as
libraries -- and it's not clear from the distributions how to do this, etc.
If you asked the folks who put this together, wouldn't they would help
you with this?
Is it hard, or is it that its a C library and you haven't worked much
with building C libraries? Or are you on a windows box? I follow the
Apple rendezvous mailling list, and I get the impression they have a
windows release of the client library, at least, maybe the server, too.
As for pure-ruby, I'm working on this.
I can do .local name lookups by multicast right now (email me directly
and I can give you a copy of the code, if you want to look at it).
It's built on top of the DNS support in ruby's resolv.rb, and I'm in the
process of working on how to use that support in the simplest way, and
without having to get the ruby library changed, which might be hard ( my
two recent bug reports are a first step, though).
After I do this cleanup, I should have address -> name lookups working.
What remains then is:
- lookups of arbitrary records (might come for free, but will have to
test)
- DNS-SD (i think it's basically a formatting convention for TXT
records, which should be pretty easy)
- "browsing" - i.e., issuing a request and watching the net to see all
services as they are advertised.
This last will be the most difficult for me... because it requires
listening to multicasts on port 5353, and I run OS X which already has
a Rendezvous implementation. The easiest way, oddly, might be to
implement a mDNS server in ruby, so that I can run it on a
non-standard port, and test my client on a non-standard port. Ouf.
For what it's worth, Python has a pure Python implementation of a mDNS /
Rendezvous library, but it's badly broken. Right now at work, we're
In what way? I'd like to avoid this brokenness, is it just bugs, or is
there something fundamental they are not doing well?
Cheers,
Sam