Scala XMPP?

View: New views
1 Messages — Rating Filter:   Alert me  

Scala XMPP?

by Justin du coeur :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've asked about this once before, but it was more tangentially and some months ago, so let's check again: has anyone yet written, or is anyone working on, a serious Scala-based XMPP server?  IMO, Scala and XMPP are a natural match -- Scala actors look to be one of the better ways to write a scalable, reliable, modular XMPP server.  But so far, I haven't found one.

I know that you can use Scala inside Openfire, but frankly, that kinda sucks -- I've spent a number of months working in that environment, and the impedance mismatch is pretty serious.  You need a lot of shims to adapt Openfire to actors, and it's a pain in the ass to translate Openfire's XML model to and from Scala's.

There's ESME, but that doesn't appear to really be an XMPP server; rather, it seems to be a general protocol-neutral micromessaging infrastructure, which isn't what I'm looking for here.

You can get actor-style behaviour with ejabberd, of course -- but I just plain don't *like* Erlang.

And Lift appears to have XMPP *client* behaviour in it, but as far as I can tell, it isn't really an XMPP server.

The impetus here is Google Wave.  One aspect of the Wave project is that Google is trying to foster an open protocol, and open-source development of reference servers for that protocol.  The server-to-server protocol is XMPP; there seems to be rough consensus that the client-server protocol should be, as well.  The first cut is written in Java (on Openfire), but many of us feel that we could do better.  Personally, I think a Scala implementation would rock.

So the first step towards that is a raw XMPP server framework -- it would eventually need some of the conventional XMPP capabilities, but a pretty idiosyncratic subset.  Before I start (very slowly) writing that, I want to make sure somebody's not already working on it.

For that matter, are there folks who would be interested in helping with this, if I started it?  I don't have much experience creating an open-source project, but this seems like it should definitely be one...