awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 7 days ago
JSON representation
-
Projects
-
Architecture
- ArchUnit - Test library for specifying and asserting architecture rules.
- jMolecules - Annotations and interfaces to express design and architecture concepts in code.
-
Artificial Intelligence
- LangChain4j - Simplifies integration of LLMs with unified APIs and a comprehensive toolbox.
- 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.
- simple-openai - Library to use the OpenAI API (and compatible ones) in the simplest possible way.
- JamJet - Agent runtime with a Java SDK for building AI agents, supporting graph-based workflow orchestration, multi-agent coordination, and MCP/A2A protocols.
-
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.
- 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.
- 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.
- Selma - Annotation processor-based bean mapper.
-
Build
- Buck - Encourages the creation of small, reusable modules consisting of code and resources.
- Buck2 - Encourages the creation of small, reusable modules consisting of code and resources.
- Bazel - Tool from Google that builds code quickly and reliably.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
-
Bytecode Manipulation
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
- bytecode-viewer - Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
- 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.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
-
Caching
- cache2k - In-memory high performance caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
- Caffeine - High-performance, near-optimal caching library.
-
CLI
- JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
- picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- jbock - Reflectionless command line parser.
- JLine - Includes features from modern shells like completion or history.
- 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](https://en.wikipedia.org/wiki/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)
- AliveJTUI - Declarative, React-style TUI library for building terminal UIs as component trees with diff-based rendering, focus management, and themes.
-
Cloud
- AWS SDK for Java - Provides Java APIs for interacting with Amazon Web Services.
- Google Cloud Client Libraries - Client libraries for accessing Google Cloud services from Java applications.
-
Cluster Management
- Apache Aurora - Mesos framework for long-running services and cron jobs.
- Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
-
Code Analysis
- Infer - Modern static analysis tool for verifying the correctness of code.
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- Error Prone - Catches common programming mistakes as compile-time errors.
- Error Prone Support - Error Prone extensions: extra bug checkers and a large battery of Refaster templates.
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- PMD - Source code analysis for finding bad coding practices.
- p3c - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse.
- SonarJava - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
- Spoon - Library for analyzing and transforming Java source code.
- Spotbugs - Static analysis of bytecode to find potential bugs. (LGPL-2.1-only)
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- ToolsHref - Online Java code analyzer and JSON-to-Mermaid visualization tool.
-
Code Coverage
- Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
- JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
- Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only)
- Delta Coverage - Computes code coverage of new and modified code based on a provided diff, supporting JaCoCo and IntelliJ coverage engines.
-
Code Generators
- Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
- Bootify  data models.
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
- ThreeTen-Extra - Additional date-time classes that complement those in JDK 8.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
-
Decentralization
-
Dependency Injection
- Inversion of Control
- Apache DeltaSpike - CDI extension framework.
- Avaje Inject - Microservice-focused compile-time injection framework without reflection.
- Dagger - Compile-time injection framework without reflection.
- Feather - Ultra-lightweight, JSR-330-compliant dependency injection library.
- Governator - Extensions and utilities that enhance Google Guice.
- Guice - Lightweight and opinionated framework that completes Dagger.
- HK2 - Lightweight and dynamic dependency injection framework.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
- HK2 - Lightweight and dynamic dependency injection framework.
- Dimension-DI - JSR-330 runtime dependency injection using the JDK Class-File API.
-
Development
- AspectJ - Seamless aspect-oriented programming extension.
- DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
- Faux Pas - Library that simplifies error handling by circumventing the issue that none of the functional interfaces in the Java Runtime is allowed by default to throw checked exceptions.
- HotswapAgent - Unlimited runtime class and resource redefinition. (GPL-2.0-only)
- JavaParser - Parse, modify and generate Java code.
- JavaSymbolSolver - Symbol solver.
- Manifold - Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- SneakyThrow - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations.
- Tail - Enable infinite recursion using tail call optimization.
- NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
-
Distributed Applications
- Apache Geode - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
- Apache Storm - Realtime computation system.
- Atomix - Fault-tolerant distributed coordination framework.
- Axon - Framework for creating CQRS applications.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Quasar - Lightweight threads and actors for the JVM.
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- Atomix - Fault-tolerant distributed coordination framework.
-
Programming Languages
Categories
Sub Categories
Testing
63
People
58
Platform
53
Miscellaneous
42
Database
40
Websites
29
Security
27
Web Frameworks
27
Monitoring
26
Utility
26
REST Frameworks
22
Code Generators
18
JSON
17
Science
16
Messaging
16
Distributed Applications
15
JVM and JDK
15
Code Analysis
14
Logging
14
Configuration
14
Related Awesome Lists
14
Networking
14
Distribution
13
PDF
13
Machine Learning
13
Dependency Injection
11
Development
11
Template Engine
11
Bytecode Manipulation
11
ORM
11
Microservice
11
Geospatial
10
Podcasts and Screencasts
10
HTTP Clients
10
Game Development
10
Data Structures
10
CLI
10
Functional Programming
9
Bean Mapping
9
Performance analysis
9
Imagery
8
Formal Verification
8
Introspection
7
Serialization
7
Influential Books
7
High Performance
7
Job Scheduling
7
Financial
6
Document Processing
6
CSV
6
GUI
6
Natural Language Processing
6
Reactive libraries
5
Web Crawling
5
Native
5
IDE
5
Search
5
Date and Time
5
PaaS
5
Artificial Intelligence
4
Workflow Orchestration Engines
4
Hypermedia Types
4
Build
4
Server
4
Constraint Satisfaction Problem Solver
4
Distributed Transactions
4
Code Coverage
4
Caching
4
Processes
3
Computer Vision
3
Mobile Development
3
Version Managers
3
Cloud
2
Compiler-compiler
2
Communities
2
Frontends
2
Architecture
2
Cluster Management
2
Pathfinding
1
Decentralization
1
Keywords
java
227
kotlin
18
spring-boot
17
testing
16
android
15
spring
14
microservices
13
jvm
13
monitoring
12
static-analysis
12
http
10
database
10
java-library
10
json
9
awesome
9
javascript
8
rest-api
8
python
8
rest
8
xml
7
annotation-processor
7
machine-learning
7
sql
7
rpc
7
orm
6
high-performance
6
cloud-native
6
jdbc
6
awesome-list
6
java8
6
framework
6
static-code-analysis
6
api
6
library
6
metrics
6
javafx
6
logging
6
maven-plugin
6
java-8
6
junit
6
configuration
6
serialization
6
gradle
5
generator
5
cli
5
functional-programming
5
performance
5
test-automation
5
testing-tools
5
grpc
5