Features and changes under consideration. Not necessarily in order.
-
Mutation testing using PIT http://pitest.org/
-
Remove Netty dependency in client and protocol. Having a dependency-free client and protocol seems worthwhile as it opens up the possibility of use on Android. This would mean using either ByteBuffer or byte[] in place of ByteBuf.
-
Further towards potential use on Android, remove the few Java 8 features from the codebase. This only makes sense if above the client and protocol changes are made first.
-
Maven Build. I avoid Maven because of its magic and tendency to "download the internet". But I can't ignore Maven's defacto status as the Java build tool; having a pom will ease integration for many potential users.
-
Potential optimizations to consider:
- Extract from fastutil or other primitive collection replacements for LinkedHashMap and TreeMap.
- Unify byte[] vs ByteBuf. Exclusively using ByteBuf could potentially eliminate copies?
- Overall garbage generation reduction.
Non-features, will not be implemented:
- Logging in the client and protocol. I have little desire to wade into the tire fire that is Java logging. My stance is that it's a choice client code should make.