Jabber API sets

I need to write a Jabber client in Java and was hoping that I could get some information from people on what there experiences have been with the various API sets out there.

I realize I am posting this to the smack board but would really appreciate some objective comments.

I have identified 4 APIs that I think are the best candidates:

Muse

JabberBeans

Smack

Marbles

Smack is the only library I have found that seems to have any recent work going on, and has a fairly active user base.

Anyway, what if any experiences have people had with any of these APIs? As it stands right now, I’'m leaning towards Smack but I would just like a little feedback before I commit.

Derek,

Maybe others can offer “objective” advice, but I’‘m still happy to give my $.02. JSO is the only other lib under active development that I know of. Probably the biggest difference between Smack and other libraries is that Smack is really aimed at ease-of-use for developers. The other API’'s are much more complex without really offering any advantages. Browsing Javadocs might be a good way to evaluate each of the options though.

-Matt

Hi derekl

I have written a Jabber client in Java. First I have used the JabberBeans API. After several Problems I now use Smack.

JabberBeans is deprecated at the moment and the developer of the JabberBeans API started a new Projekt called b9j2. But I call the API JabberBeans2. It is from the same developer and the b9j2 have the version 0.1. So I don’'t think you want use it.

I would never use JabberBeans as Jabber-API in the future.

I don’‘t know something about the other two APIs. But please don’'t use JabberBeans.

Thanks for the info guys!

I’‘ve already started to use Smack in my implementation and have found it very easy to use so far! The one thing I would request (and I’‘ve seen it requested before on this board) is that some sort of IncomingChatListener interface be added to handle incoming chat sessions. But that’‘s not going to hold me up, I’'m just going to do some custom processing of all incoming chat messages that I think should be fairly easy.

As for the future of Smack, are there any plans to strip the API down evern further? By this I mean maybe creating a raw connection object which does no more than connect to the host and port indicated, and provide facilities for sending and filtering packets? I think that in itself is a pretty powerful paradigm. Not sure I would use it, but I think that might be a feature some would like. From there, various layers of functionality could be added on top to fill out the API. Or is this the way things are done already?