From: Evan S. <ev...@ad...> - 2007-03-29 23:58:19
|
I'd like to start a cross-list Adium/Gaim dialogue about the future of Bonjour, especially as it relates to XMPP. Apparently, the Bonjour protocol as implemented by iChat is a small subset of XMPP but there's no reason not to fully support everything XMPP has to offer. That includes, of course, eventual Talk support via libjingle, just-as-a-for-instance. The only part of XMPP which is excluded when using Bonjour is the roster, it appears. We discussed this a bit on adium-dev already. Adium currently utilizes libezv, a BSD licensed implementation of Bonjour which is approximately where the libgaim bonjour prpl is at present (presence, messaging, typing status) with what I believe are a few extras (buddy icon support) but some similar limitations (no file transfer, for example). One thing libezv *does* get us in Adium is the use of OS X's systemwide mDNS stack via native calls. Really, as I understand it, Bonjour is XMPP but with (1) different network code, which routes through an mDNS stack instead of traditional network calls and (2) different presence handling, especially since there is no Bonjour Roster. What if the Jabber prpl were split, similarly to how Oscar was split into AIM and ICQ, but with a significantly greater degree of split complexity? Jabber and Bonjour wouldn't be treated as the same protocol in terms of what a user (or a UI) saw, but at the heart they could share the vast majority of their code. Bonjour would do network activity via GaimBonjourMDNSCallback functions, or the like, such that the UI would be able to use the best available library. In the case of Gaim, that would be Howl initially but hopefully Avahi in the future. In the case of Adium, this would be the appropriate DNSServiceDiscovery and CoreFoundation framework calls. We have a couple strong Google Summer of Code proposals related to Bonjour that we're considering for Adium, and I see a number of proposals related to it in the Gaim GSoC applications list, as well. A project in this direction could have big payoff, especially looking forward: we would bring a mature, capable, growing XMPP implementation to Bonjour, raising the bar as to what a Bonjour client can and should do. The time to think about this and discuss it is now, while we have interested students looking to get involved in an important project and before we allow them to work in a direction which might soon be reversed. Thoughts? Please reply-to-all; my apologies for the extra traffic to those of you who are subscribers of both lists. -Evan |