Client/Server Library Discussion

So I’ve been torn between 3 libraries that all do what I want.

All have their perks, but which do you use and recommend?

KryoNET [Current Winner]

  • Created by Nate
  • Easy to use
  • Quick setup
  • Fast development cycle
  • Great support

Apache MINA

  • Very flexible
  • lower-level
  • Verbose setup
  • Slow development cycle/bug fixes

Netty

  • Fast?
  • Good documentation

PyroNET

I was against KryoNet when i did not know much about network but it is a very good lib for client/server connection

I am using KryoNet for a while and I really like it. At the moment I can’t say anything bad and it’s easy to understand.

Yeah KryoNET looks extremely easy to use. Does it support custom byte decoding? I want to use my own decoder.

I haven’t used the others, but even still I recommend KryoNet. It’s fairly easy to understand and really versatile. I will say you might have to fiddle with some values if you have any issues, and really pay attention to any drop-offs in the ability to receive and process data (ie state changes), but it’s a good tool.

I can’t say about the byte decoding, though.

im not sure i have not went that far in

Yes it does! Just have to extend Serialization. Sweet extremely easy.

What about performance. Have you experienced any major hiccups?

con of kryonet is that it features no P2P

a Hickup i keep getting is it whining about the buffer size being to small now and then, so i adjust the size and then it complains its corrupting the data in deserialized so it can be a little annoying xD

I used MINA and it works well but just figuring out how to send a byte array was very painful.

I haven’t used Kryonet but peoples’ feedback in the forum is very positive and fellow JGO’er Nate is the developer and he’s very astute.

A similarly good API that you might consider is that made by Riven, https://code.google.com/p/pyronet/ which is very fast and low-level.

Some discussion of the API’s and the origin of pyronet and kryonet can be found here:

Cheers,
Keith

@CommanderKeith Yeah I also use MINA. My issue was decoding packets that weren’t completely received yet.

Thanks for the PyroNET suggsetion. I’ll add it to the list.

I’m using Netty + Kryo. Not KryoNetty but the outcome is probably the same. I use kryo to (de)serialize my UDP messages and then send/receive them with Netty.