[Adium-devl] Bonjour Messaging Discussion

Evan Schoenberg evan at adiumx.com
Wed May 16 16:27:18 UTC 2007


On May 16, 2007, at 12:12 PM, Chris Forsythe wrote:

> Erich Kreutzer wrote:
>
>> What is the goal of Bonjour messaging support in Adium?  In
>> other words is it more important for Adium to work well with iChat
>> and only passably support other Bonjour messaging clients (Pidgin and
>> Gajim) or vice versa?
>>
>
> I'd say support for iChat is more important.

I think this may gloss over a distinction which is relevant to the  
discussion.  iChat 1.0 is a mess.  As far as I am aware, we're  
currently compatible with iChat 1.0 -- which has almost no users  
whatsoever -- and only barely if at all compatible (based on the bug  
reports seen) with later versions of iChat.

No acceptable implementation in any client should be incompatible  
with the current version of iChat.  However, as we are an open source  
messaging application, I believe that properly implementing the JEP  
for Bonjour messaging should be the standard.  I'll be surprised if  
there are unavoidable incompatibilities between implementing that JEP  
and being iChat compatible in a real sense.

I'd like to add a couple entries and make a couple notes:
> libezv
> 	Advantages:
> 		-The framework is already in place within Adium
> 		-Would be more likely to work with iChat 1.0
> 		-Could more easily support the hybrid file transfer protocol
Erich, could you explain what the 'hydrid file transfer protocol' is  
and perhaps give a few thoughts as to why libezv would be better  
suited to handling it?

> 		-On a personal level, I have experience with Objective-C and Andrew
> Wellington, my mentor wrote libezv
> 		-Updating to be XMPP compatible shouldn't be difficult and using
> libezv does not preclude being XMPP compatible
Being 'XMPP compatible' is a good goal... but even better is an  
advantage of the libpurple version, see below plus keep in mind that  
there are JEPs now and in the future which a full XMPP implementation  
wields that iChat alone does not.  We should be able to use client  
capabilities discovery to be able to do fun things over Bonjour which  
iChat itself doesn't support.  This, of course, could be done in the  
libezv implementation, too, but would require reimplementation rather  
than 'free' use of existing code...
> 		
> libpurple
> 	Advantages:
> 		-Helps other programs that use libpurple (Mainly Pidgin)
> 		-This would remove the dependency on libezv within Adium
> 		-Already conforms to XMPP standards
		   -Any future work on the XMPP implementation will benefit Bonjour  
as well as Jabber.  For example, later voice/video efforts, adding  
libjingle, would also benefit Bonjour.
		  -More eyes.  The libpurple development community offers benefits  
of maintenance and future bug fixing at a protocol which exceed that  
of the Adium community.

> 	Disadvantages
> 		-The abstraction could possibly be so large that any advantage
> gained from using the xmpp standards would be lost
> 		-Requires an abstraction of the mDNS layer to allow for different
> implementations on the different platforms supported by libpurple
> 		-Bonjour messaging doesn't really need all of the standards such as
> authentication and account registration
> 		-Implementing the file transfer protocol for iChat would be more
> difficult
>

Two side notes:
  -  the very very first move of splitting xmpp into multiple  
protocol plugins ("prpls") has been done in libpurple's trunk; the  
Jabber prpl is now a plugin making use of a libxmpp product, though  
this libxmpp is obviously not abstracted in a way that is immediately  
helpful to Bonjour messaging.
  - The mDNS layer of a libpurple based solution would reside within  
Adium and would, I expect, be largely based on libezv.  Such a  
solution could be used as-is initially and would hopefully be  
modernized in the process, something which should be done with either  
solution.

-Evan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20070516/a0c78be2/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/20070516/a0c78be2/attachment.sig>


More information about the devel mailing list