Thanks for pointing out your library.
Could you go into a little more detail about how it compares to other common open source networking libraries?
* RakNet
* boost::asio
* ZeroMQ
* ENet
Most of those libraries have been used for larger projects than the ones you're currently suggesting, so choosing a new library has to be done for some significant and obvious benefit. What would you say your benefit is? How did you achieve/implement that benefit, compared to the others?
All good points and there are definitely benefits that each library presents. I will address each of the libraries you said separately.
Raknet
This library is very advanced and does have features that NitroNet doesn't have, but on the flip-side my library has features that Raknet doesn't have. To start with Raknet only supports C++ and C# applications which can be a draw back for developers that are trying to develop games on different platforms. NitroNet is a Java library and allows communication from any other languages that can send bytes over a stream. With mobile games quickly become popular NitroNet is there for Java Android developers that want their apps to communicate to an external server. Raknet does support communication with C++ Android app developers though. Raknet also seems to come with a lobby system although this is nothing but an extension onto NitroNet itself and would be rather easy to extend using the database support.
Boost::asio
This library is a very low level library and does not implement many features into it. It is more open for developers to extend and build on top of it. It's biggest 'pro' is that it is a synchronized library so communication will stay constant among all connected clients. This library is more for those that want to stay low-level and have a good understanding of sockets and C++. NitroNet is the complete opposite as it is a high-level library and is easy to import into the project and get started with. NitroNet is aimed at the developers that don't care how the networking works in the background but only that it works and it works efficiently. On top of that NitroNet also implements the different features I have listed in the main post that Boost::asio does not.
ZeroMQ
This library also is a very low level library but seems to have a large community for it's development. Obviously that is not something NitroNet can compete with given that it is just starting out. The points that I would point out are the same as the ones in Boost::asio. It is another asynchronous library that requires most features to be added by the developer.
Enet
This library is very different from the others as it truly only supports UDP protocol with their own features built on top to add in some features that TCP offers like sequencing. It also has the same packet streaming, what it refers to as "fragmentation and reassembly". It does, however, require most other features to be built on top. The largest drawback of this library is that it can only be used on Windows and Unix-like platforms which is a huge drawback today when networked applications are running on mobile devices and other platforms.
So those are the comparisons between those libraries and NitroNet. The biggest thing with NitroNet is that it is high-level. It is designed so that any standard developer can include the library in their project and get communications started in a small amount of time. I actually designed this library to out-do the Kryonet library which is a widely-used library for Java applications but one that does not offer all of the features and efficiency that NitroNet does. I hope this helps!