fucking-awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language. With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-java
Last synced: 1 day 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.
- 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.
- liter-llm - Provides a Java binding for a unified LLM API client across multiple providers.
- Regulus - Google ADK plugin suite that adds runtime compliance profiles, audit envelopes and GRC adapters for regulated Java AI agents.
-
Bean Mapping
- 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.
- 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.
- Immuto - Annotation processor that generates type-safe mapper implementations for Java Records using canonical constructors, with zero runtime reflection.
-
Build
- Buck2 - Encourages the creation of small, reusable modules consisting of code and resources.
- Bazel - Tool from Google that builds code quickly and reliably.
- jar-cart - A modern, zero-configuration package manager and runner for the Java ecosystem written in Go, focusing on developer productivity and build speed.
-
Bytecode Manipulation
- 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.
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
-
Caching
- Caffeine - High-performance, near-optimal caching library.
-
CLI
- jbock - Reflectionless command line parser.
- JLine - Includes features from modern shells like completion or history.
- Jansi - ANSI escape codes to format console output.
- Text-IO - Aids the creation of full console-based applications.
- Lanterna - Easy console text-GUI library, similar to curses. (LGPL-3.0-only)
- Airline - Annotation-based framework for parsing Git-like command-line arguments.
- 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).
- 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.
-
Code Analysis
- 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.
- Infer - Modern static analysis tool for verifying the correctness of code.
- 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.
-
Code Coverage
- Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
- Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only)
- JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
- Delta Coverage - Computes code coverage of new and modified code based on a provided diff, supporting JaCoCo and IntelliJ coverage engines.
-
Code Formatting
- google-java-format - Reformats Java source code to follow Google Java Style.
- JHarmonizer - Safely reorders Java source code with configurable rules and Palantir Java Format.
- Palantir Java Format - Formatter based on google-java-format with wider lines and lambda-friendly output.
-
Code Generators
- ADT4J - JSR-269 code generator for algebraic data types.
- Auto - Generates factory, service, and value classes.
- FreeBuilder - Automatically generates the Builder pattern.
- Geci - Discovers files that need generated code, updates automatically and writes to the source with a convenient API.
- JavaPoet - API to generate source files.
- JHipster - Yeoman source code generator for Spring Boot and AngularJS.
- Record-Builder - Companion builder class, withers and templates for Java records.
- EasyEntityToDTO - Annotation processor for automatic DTO and Mapper generation with zero boilerplate.
- Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
- Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
- Telosys - Simple and light code generator available as an Eclipse Plugin and also as a CLI.
- JSpecify Package-Info Generator - Maven plugin that automatically generates package-info.java files with JSpecify annotations (@NullMarked and @NullUnmarked), helping you manage nullness boundaries in your Java projects without manual boilerplate.
- 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
-
Decompilation
- CFR - Java decompiler focused on modern language features.
- Fernflower - Java decompiler with broad JVM bytecode support.
- JD-Core - Core Java decompiler library.
- Procyon - Java decompiler and metadata toolkit.
- transformer-api - Unified API that exposes multiple decompilers through one in-memory transformation interface.
- Vineflower - Modern maintained fork of Fernflower.
-
Dependency Injection
- 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.
- JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
- Dimension-DI - JSR-330 runtime dependency injection using the JDK Class-File API.
-
Development
- 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.
-
Distributed Applications
- Dropwizard Circuit Breaker - Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
- Failsafe - Simple failure handling with retries and circuit breakers.
- Hazelcast - Highly scalable in-memory datagrid with a free open-source version.
- JGroups - Toolkit for reliable messaging and cluster creation.
- Quasar - Lightweight threads and actors for the JVM.
- resilience4j - Functional fault tolerance library.
- OpenIG - High-performance reverse proxy server with specialized session management and credential replay functionality.
- ScaleCube Services - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
-
Distributed Transactions
- Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
-
Distribution
- Artipie - Binary artifact management toolkit which hosts them on the file system or S3.
- Boxfuse ![c - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
- Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
- Getdown - System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start.
- JavaPackager - Maven and Gradle plugin which provides an easy way to package Java applications in native Windows, macOS or GNU/Linux executables, and generate installers for them.
- jlink.online - Builds optimized runtimes over HTTP.
- packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
- really-executable-jars-maven-plugin - Maven plugin for making self-executing JARs.
- JavaPackager - Maven and Gradle plugin which provides an easy way to package Java applications in native Windows, macOS or GNU/Linux executables, and generate installers for them.
- Nuts - Installs and runs Java applications from Maven repositories, reusing descriptors and provisioning required JDKs.
-
Document Processing
- fastexcel - High performance library to read and write large Excel (XLSX) worksheets.
- zerocell - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
- Sheetz - Reads and writes Excel, CSV and ODS files with annotation mapping, streaming, styling and validation.
- html-to-markdown - Converts HTML to CommonMark-compatible Markdown through a Java binding.
- jackson-dataformat-spreadsheet - Jackson dataformat module for reading and writing Excel (XLSX/XLS) as POJOs via `ObjectMapper`.
- xberg - Extracts text, tables and metadata from PDFs, Office documents, images and other formats through a Java binding.
-
Financial
- Cassandre - Trading bot framework.
- Parity - Platform for trading venues.
- Philadelphia - Low-latency financial information exchange.
- Square - Integration with the Square API.
- Stripe - Integration with the Stripe API.
- ta4j - Library for technical analysis.
- Wickra - Technical-analysis library with 514 streaming O(1)-per-tick indicators on a native Rust core, on Maven Central as org.wickra:wickra; more indicators and incremental updates than the pure-Java ta4j.
-
Flat File
- BeanIO - Maps flat files of fixed-length or delimited records to and from Java beans using XML or annotation configuration.
- fixedformat4j - Annotation-driven mapping of fixed-width flat files to and from POJOs and Java records.
- Flatpack - Parses and writes delimited and fixed-length flat files with optional column-mapping definitions.
-
Formal Verification
- CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
- Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
- OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)
-
Functional Programming
- Cyclops - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
- derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only)
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
- jOOλ - Extension to Java 8 that aims to fix gaps in lambda by providing numerous missing types and a rich set of sequential Stream API additions.
- Packrat - Gatherers library for Java Stream API. Gatherers can enhance streams with custom intermediate operations.
- protonpack - Collection of stream utilities.
- StreamEx - Enhances Java 8 Streams.
- Parallel Collectors - Stream API Collectors for parallel processing with custom thread pools, designed for I/O-heavy workloads.
-
Game Development
- JBox2D - Port of the renowned C++ 2D physics engine.
-
Programming Languages
Categories
Sub Categories
Testing
52
Platform
49
Miscellaneous
36
Database
26
Utility
21
Monitoring
21
Security
18
JSON
15
Code Generators
15
Related Awesome Lists
14
Configuration
13
Networking
12
Science
12
Code Analysis
11
Messaging
10
Data Structures
10
Performance analysis
10
PDF
10
REST Frameworks
10
Distribution
10
Distributed Applications
9
Machine Learning
9
Imagery
8
CLI
8
Microservice
8
Bean Mapping
8
ORM
8
Functional Programming
8
HTTP Clients
8
Artificial Intelligence
8
Bytecode Manipulation
8
Web Frameworks
8
Financial
7
Job Scheduling
7
Template Engine
7
Geospatial
6
Development
6
Decompilation
6
Serialization
6
Logging
6
High Performance
6
Document Processing
6
Native
5
Web Crawling
5
JVM and JDK
5
Dependency Injection
5
Date and Time
5
Introspection
5
Hypermedia Types
4
CSV
4
Code Coverage
4
Flat File
3
GUI
3
Formal Verification
3
Natural Language Processing
3
PaaS
3
Game Development
3
Build
3
Reactive libraries
3
Version Managers
3
Code Formatting
3
Processes
3
Cloud
2
Websites
2
Architecture
2
IDE
1
Distributed Transactions
1
Computer Vision
1
Podcasts and Screencasts
1
Caching
1
Decentralization
1
Constraint Satisfaction Problem Solver
1
Server
1
Pathfinding
1
Search
1
Workflow Orchestration Engines
1
Compiler-compiler
1
Keywords
java
232
spring-boot
18
kotlin
18
testing
16
spring
14
static-analysis
13
microservices
13
monitoring
12
android
12
database
10
java-library
10
http
10
jvm
10
python
10
awesome
10
annotation-processor
9
json
9
rest-api
8
machine-learning
8
xml
8
rest
8
sql
7
library
7
maven-plugin
7
junit
7
awesome-list
7
rust
7
javascript
7
cloud-native
6
api
6
java-8
6
jdbc
6
rpc
6
logging
6
jackson
6
orm
6
high-performance
6
java8
6
configuration
6
metrics
6
static-code-analysis
6
grpc
5
javafx
5
template-engine
5
test-automation
5
generator
5
testing-tools
5
code-generator
5
llm
5
csv
5