Hi, i wanted to drop a note that i just released 0.3 of my java network lib SimpleNet
It was born while i played with darkstar and googles protobuf and emerged out of the need to have a simple but fast message dispatching functionality. The critical point was, that the messages id should be maintained mostly automatically, leaving the dev (me) just the task to design the messages. However, fiddling around with protobufs extensions was no fun and using the enum feature was too unflexible in my opinion.
This was the reason i wrote my own lib.
It mostly deals with managing the "get ByteBuffer, decode and handle" thing, which is achieved by MessageHandlers that do the real work. Each MessageHandler is responsible for handling one specific message type. There is also a HeaderHandler which deals with message type id-recognition (the basis for the PacketManager to be able to dispatch the incoming messages to the appropriate MessageHandler), but can do several other tasks too (eg. encryption, compressing, whatever you like). Currently there is one default implementation for the HeaderHandler available, but he is rather basic (however should satisfy the most cases already). I have plans to add a plugin interface, so arbitary plugins can be added so extending the header will be an easy task.
I would be glad if you would download and test it, so you can give me tips/bug reports/patches/whatever you like (maybe you will write a review?), while i hope that this lib is useful to some of you.
Also, i hope that the population of the doc/ directory pais off so you get a fast grip.
The project is hosted at Sourceforge: http://sourceforge.net/projects/simplenet/
(project home: http://simplenet.sourceforge.net/
Its sourcecode is available at the SF webSVN: http://simplenet.svn.sourceforge.net/viewvc/simplenet/
The APIdoc as well as examples and descriptions is part of the distribution file; however most of the docs can be viewed in svn
The current initial release license is AGPL, but upcoming releases will be put under the LGPL (svn code already is).