Awesome Java
A curated list of awesome Java libraries inspired by other Awesome lists
AOT compilers
Annotation processor
- immutables - Annotation processor to create immutable objects and builders.
- Lombok - Lombok is used to reduce boilerplate code for model/data objects.
- mapstruct - An annotation processor for generating type-safe bean mappers
Big collections, cache & off-heap memory
Messaging & queues
Checkpoint & restore
CLI parser
- Airline - Annotation-based framework for parsing Git like command line structures.
- args4j
- barclay - Command line argument parser and online documentation generation utilities.
- cli-toolbelt - Annotation based command line builder with support for git-like subcommands, basic argument parsing and works with others like JewelCLI.
- CmdOption - Simple annotation-driven command line parser.
- commandline - Annotation based command line parser.
- jbock - Curiously simple CLI parser.
- JewelCLI - Annotated interface to automatically parse and present command line arguments.
- jopt-simple - Java library for parsing command line options.
- picocli - Annotation based command line parser with strong typing and support for git-like subcommands.
Crypto
- java-otp - A one-time password (HOTP/TOTP) library for Java.
- OTP-Java - One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP).
- two-factor-auth - Two Factor Authentication Java code implementing the Time-based One-time Password Algorithm.
- JWT-Java - JSON Web Token implementation for Java according to RFC 7519.
DB engines
- Derby - Open source relational database implemented entirely in Java.
- Gaffer - Large-scale entity and relation database supporting aggregation of properties.
- H2 - H2 is an embeddable RDBMS written in Java.
- HSQLDB - HSQLDB (Hyper SQL Database) is a relational database management system written in Java, offering a fast, small database engine which offers both in-memory and disk-based tables
- LevelDB - Port of LevelDB to Java.
- PalDB - Embeddable write-once key-value store written in Java.
- MapDB - Fast and easy to use embedded Java database engine.
- Xodus - JetBrains Xodus is a Java transactional schema-less embedded database.
Dataflow & parallization
- Actr - Simple, fast and typesafe Java actor model implementation.
- JCSP - Communicating Sequential Processes (CSP) for Java.
- Quasar - Fibers, Channels and Actors for the JVM.
- GPars - Concurrency and parallelism framework for the JVM.
- Pipes - Lazy Data Flow Framework.
- Pekka - Apache Pekko is a fork of Akka 2.6.x.
DI
- Dagger - Fast dependency injector.
- Tiger - Fastest java dependency injection framework.
- Purejin - Java dependency injection through code.
Error handling
- Failsafe - Simple, sophisticated failure handling.
- Resilience4j - Fault tolerance library designed for Java8 and functional programming.
File system
Hashing
Http
- Http-builder-ng - The Easy Http Client for Groovy.
- OkHttp - HTTP+SPDY client for Android and Java applications.
- Unirest - Lightweight HTTP libraries for Java.
- retrofit - Type-safe HTTP client for Android and Java.
Logging
- blitz4j - Logging framework for fast asynchronous logging.
- log4j2 - Async Loggers have 18 times higher throughput than Log4j 1.x and Logback.
Math & ML
- Jblas - Linear Algebra for Java.
- FastR - R language intepreter.
- Renjin - JVM-based interpreter for the R language.
- Tribuo - Machine learning lib by Oracle
Messaging
- Aeron - Efficient reliable unicast and multicast message transport.
- MBassador - Event bus aiming at ease of use and performance.
- Mappedbus - Library for low latency IPC between multiple Java processes/JVMs.
Native invocation / FFI
- JavaCpp - Bridge between Java and native C++.
- JNA - Java Native Access.
Packaging
Regular expressions
- RE2/J - Linear time regular expression matching in Java.
Reactive stream
Serialization
Syntax parsing
- In-memory-antlr - In Memory compilation of ANTLR grammars
- Java-parser - Java 9 Parser and Abstract Syntax Tree for Java
- Groovy-Parrot - Brand new parser for Groovy programming language.
- Rewrite - Semantic code search and transformation via Java AST transformation.
Templating
- handlebars - Logic-less and semantic Mustache templates with Java
Task scheduler
- db-scheduler - Persistent cluster-friendly scheduler for Java
- Jobrunr - Background processing in Java. Backed by persistent storage.
- Workhorse - Java EE Job Engine for background jobs and business critical tasks
- Sundial - Lightweight Java job scheduling framework forked from Quartz
- ShedLock - Distributed lock for your scheduled tasks
Testing
- βetamax - Tool for mocking external HTTP web services and REST APIs.
- Ersatz - Mock HTTP server for testing client code.
- Overcast - Helper classes to write your tests against hosts in the cloud.
- Spock - Enterprise-ready testing and specification framework.
- WireMock - A tool for mocking HTTP services.
Other
- asciitable - Several implementations of a text table, originally using ASCII and UTF-8 characters for borders.
- Allocation instrumenter - Java agent that rewrites bytecode to instrument allocation sites.
- Arthas - Alibaba Java Profiling and Diagnostic Tool Arthas.
- Bloofi - Multidimensional Bloom filters.
- Cfg4j - Modern configuration library for distributed apps.
- directory-watcher - cross-platform Java recursive directory watcher, with a JNA macOS watcher.
- Docker-java - Java Docker API Client.
- Drip - Fast JVM launching without the hassle of persistent JVMs.
- emoji-java - Java library that helps you use Emojis in your java applications.
- Fastfilter - Fast Approximate Membership (Bloom) Filters (aka xor-filter)
- fast-classpath-scanner - Uber-fast, ultra-lightweight Java classpath scanner.
- file-leak-detector - Java agent that detects file handle leak.
- Goodtimes - Java 8 Date/Time API enhancements for Groovy.
- java-string-similarity- Various string similarity and distance algorithms.
- jOOR - Fluent Reflection in Java.
- jvmtop - Java monitoring for the command-line - Java 11 fork see here
- jmail - modern and lightweight library for working with email addresses in Java
- K8s-cli-java - Simple Java Demo of Kubernetes kubectl plugin + Java Graal native image.
- fabric8io/kubernetes-client - Java client for Kubernetes & OpenShift.
- MmgGameApiJava - Java library for creating 2D games right in the IDE.
- Permit-reflect - Permit reflective access for java 11.
- square/OKIO - A modern I/O API for Java.
- text-io - library for creating interactive console applications in Java
- TornadoVM - Automatically run Java programs on GPUs
- RelProxy - Java and Groovy hot class reloader and Java based shell and scripting.
- hibernate-types - Extra types that are not supported by the Hibernate ORM core.
- java-stream-batch-processing
- Simple-java-mail - Simple API, Complex Emails (Jakarta Mail smtp wrapper
Web frameworks
- Jooby - Scalable, fast and modular micro web framework for Java.
- Micronaut - Micronaut Application Framework.
- Play framework - High Velocity Web Framework.
- Ratpack - A toolkit for JVM web applications .
- Spark - A Sinatra inspired framework for java.
- Vert.x - Vert.x is a tool-kit for building reactive applications on the JVM.
Tutorial