We have now analyzed various open source NIO servers for performance and memory consumption. Per my quick, initial testing, only Grizzly, Mina, and Netty were comparable. Now, let’s analyze features and how each of these frameworks use them. For my purposes, I am going to be looking into the following features that I personally value most important for my project:
- Intercepting Pattern (ie: Filters)
- Access to high level, yet effcient, buffers rather than lower level byte buffers
- Protocol independence and abstraction
- Socket independence and abstraction
- Custom protocol support
- POJO support for encoding/decoding
- Custom thread model support
- HTTP support
- User documentation (user guide, javadoc, source code, examples
