Ben Chuanlong Du's Blog

It is never too late to learn.

Useful Java Libraries

Things on this page are fragmentary and immature notes/thoughts of the author. Please read with your own judgement!

General Purpose Java Libraries


Guava is a high-quality general purpose Java opensource library mainly developed by Google. It has good immutable collection implementations which are preferred to Java's built-in immutable collections (introduced in Java 9+).

Apache Commons

Apache Commons is an another high-quality general purpose Java library.


Guice is a lightweight dependency injection framework for Java 8+. It is developed by Google.



Parser library and framework to easily build JVM command line applications (Java, Groovy, Kotlin, etc). Usage help with ANSI colors. Autocomplete. Nested subcommands. Annotations and programmatic API. Easy to include as source to avoid adding dependencies.


MyBatis is a SQL mapper framework for Java, which makes it easier to use a relational database with object-oriented applications. MyBatis couples objects with stored procedures or SQL statements using a XML descriptor or annotations. Simplicity is the biggest advantage of the MyBatis data mapper over object relational mapping tools.


RxJava is a reactive extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.



Conductor is a microservices orchestration engine.


A high performance caching library for Java 8.