[Adium-devl] Bonjour and XMPP
Evan Schoenberg
evan at adiumx.com
Thu Mar 29 23:58:03 UTC 2007
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20070329/8afdac49/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20070329/8afdac49/attachment.sig>
More information about the devel
mailing list