Home page: http://www.germane-software.com/software/Gozirra
Gozirra is a lightweight implementation of the Stomp specification. As
of the first release it includes both client and server implementations for
I made a conscious choice to use only Java 1.4 syntax here, because the
project that I originally developed this for was being deployed on 1.4
The overarching goal of this project is to provide an ultra-light messaging
Uses Jakarta Ant. You build one of: all-jar, server-only-jar, or
client-only-jar depending on what you're using it for.
* client-only-jar Produces a 8kb jarball. Useful for applications
that only want to be able to connect via a network to a Stomp server.
* server-only-jar Produces a 12.5kb jarball. Useful for
applications that want to run a server, but don't need the client
class. Right now, this doesn't gain you much over the all-jar, but
I'll refactor with factories and it'll get a bit smaller in future
* all-jar Produces a 13.5kb jarball. Contains both the client and server
See doc/index.html and java/Test.java for examples.
The Stomp protocol is still growing, unfortunately. There are a couple of
features which I haven't yet, and may never, implement. The outstanding
features, as of this writing, are:
1) Named transactions
I'll implement this, eventually... I just don't have any use for it at
the moment, so it isn't high on my list.
I disapprove of this addition to the spec, but it weaseled its way
in. content-length is a header for binary messages, and Stomp is a text
oriented protocol. I may add support for this, but don't hold your breath.
3) Alternate encodings, via the content-type header
Again, no use to me but I'll add it in sooner or later. I know it is
important for the non-english speaking world.
ACK is to the server what the receipt header is to the client. I don't
see the need for it unless you're implementing an email server. Gozirra
will probably not implement ACK.
ACK and content-length: are bordering on gratuitous bloat, and I disagree
with their inclusion in the spec. If the Stomp protocol gets any more bloated,
I may just freeze this project. If I wanted a heavy protocol, I'd use Jabber.
There are people out there who want to make Stomp a full-fledged mechanism for
JMI; if that happens, I'll fork the spec. Seriously. If you want to be fat,
slow, and dumb, go ahead and pig out on potato chips, but leave the specs
For the moment, I'm leaving content-length and ACK out. If the Stomp protocol
doesn't change in the next several months (6-12), I'll probably go ahead and
implement them, for completeness. If the Spec continues it's trend toward
accepting all lard proposals, then I won't -- I'll fork the spec as it stands.