Awesome Java 
A curated list of awesome Java frameworks, libraries and software.
Please find a different kind of layout here.
We are evaluating to make this the default, you can provide feedback here in #1171.
Contents
Projects
Architecture
Frameworks and libraries that help implementing and verifying design and architecture concepts.
- ArchUnit - Test library for specifying and asserting architecture rules.
- jMolecules - Annotations and interfaces to express design and architecture concepts in code.
Artificial Intelligence
Frameworks that help you to leverage LLMs and AI.
- Anahata ASI - Java agent container with local LLM adapters, stateful tool execution, context management and IDE integration.
- Dokimos - Evaluation framework for LLM and AI-agent applications that scores responses, validates tool calls and execution traces, and catches quality regressions in CI.
- JamJet - Agent runtime with a Java SDK for building AI agents, supporting graph-based workflow orchestration, multi-agent coordination, and MCP/A2A protocols.
- LangChain4j - Simplifies integration of LLMs with unified APIs and a comprehensive toolbox.
- liter-llm - Provides a Java binding for a unified LLM API client across multiple providers.
- MCP Java SDK - Enables applications to interact with AI models and tools through a standardized interface (i.e. Model Context Protocol), supporting both synchronous and asynchronous communication patterns.
- Regulus - Google ADK plugin suite that adds runtime compliance profiles, audit envelopes and GRC adapters for regulated Java AI agents.
- simple-openai - Library to use the OpenAI API (and compatible ones) in the simplest possible way.
- Spring AI - Application framework for AI engineering for Spring.
Bean Mapping
Frameworks that ease bean mapping.
- dOOv - Provides fluent API for typesafe domain model validation and mapping. It uses annotations, code generation and a type safe DSL to make bean validation and mapping fast and easy.
- Immuto - Annotation processor that generates type-safe mapper implementations for Java Records using canonical constructors, with zero runtime reflection.
- JMapper - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
- MapStruct - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach.
- ModelMapper - Intelligent object mapping library that automatically maps objects to each other.
- Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
- reMap - Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
- Selma - Annotation processor-based bean mapper.
Build
Tools that handle the build cycle and dependencies of an application.
- Apache Maven - Declarative build and dependency management that favors convention over configuration. It might be preferable to Apache Ant, which uses a rather procedural approach and can be difficult to maintain.
- Bazel - Tool from Google that builds code quickly and reliably.
- Buck2 - Encourages the creation of small, reusable modules consisting of code and resources.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- jar-cart - A modern, zero-configuration package manager and runner for the Java ecosystem written in Go, focusing on developer productivity and build speed.
- ReleaseRun - Dependency health checker for pom.xml and Gradle projects that scans for CVEs and outdated packages.
Bytecode Manipulation
Libraries to manipulate bytecode programmatically.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- Byteman - Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
- cglib - Bytecode generation library.
- Javassist - Tries to simplify bytecode editing.
- Maker - Provides low level bytecode generation.
- Mixin - Manipulate bytecode at runtime using real Java code.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
Caching
Libraries that provide caching facilities.
- cache2k - In-memory high performance caching library.
- Caffeine - High-performance, near-optimal caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
CLI
Libraries for everything related to the CLI.
Argument Parsing
Libraries to assist with parsing command line arguments.
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- jbock - Reflectionless command line parser.
- JLine - Includes features from modern shells like completion or history.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
Text-Based User Interfaces
Libraries that provide TUI frameworks, or building blocks related functions.
- AliveJTUI - Declarative, React-style TUI library for building terminal UIs as component trees with diff-based rendering, focus management, and themes.
- Jansi - ANSI escape codes to format console output.
- Jexer - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable windows, built-in terminal window manager, and sixel image support. Looks like Turbo Vision.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
Cloud
Libraries to integrate or use cloud-specific features.
- AWS SDK for Java - Provides Java APIs for interacting with Amazon Web Services.
- [Google Cloud Client Libraries](