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: 15 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
- 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.
-
Build
-
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 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
-
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.
-
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 - Library for reading and writing Excel and CSV files with annotation-based mapping, streaming support, and built-in validation.
-
Financial
-
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
-
Geospatial
- ArcGIS Maps SDK for Java ![c - JavaFX library for adding mapping and GIS functionality to desktop apps.
- Geo - GeoHash utilities in Java.
- GraphHopper - Road-routing engine. Used as a Java library or standalone web service.
- H2GIS - Spatial extension of the H2 database. (LGPL-3.0-only)
- Mapsforge - Map rendering based on OpenStreetMap data. (LGPL-3.0-only)
- Spatial4j - General-purpose spatial/geospatial library.
-
GUI
-
High Performance
- fastutil - Fast and compact type-specific collections.
- JCTools - Concurrency tools currently missing from the JDK.
- Koloboke - Carefully designed extension of the Java Collections Framework with primitive specializations and more.
- Eclipse Collections - Collections framework inspired by Smalltalk.
- Agrona - Data structures and utility methods that are common in high-performance applications.
- fastutil - Fast and compact type-specific collections.
-
HTTP Clients
- Async Http Client - Asynchronous HTTP and WebSocket client library.
- Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- Google HTTP Client - Pluggable HTTP transport abstraction with support for java.net.HttpURLConnection, Apache HTTP Client, Android, Google App Engine, XML, Gson, Jackson and Protobuf.
- methanol - HTTP client extensions library.
- Ribbon - Client-side IPC library that is battle-tested in the cloud.
- Riptide - Client-side response routing for Spring's RestTemplate.
- unirest-java - Simplified, lightweight HTTP client library.
-
Hypermedia Types
- hate - Builds hypermedia-friendly objects according to HAL specification.
- JSON-LD - JSON-LD implementation.
- Siren4J - Library for the Siren specification.
- Spring HATEOAS - Standalone and Spring support for building hypermedia-based APIs using HAL, HAL FORMS, Collection+JSON, ALPS and UBER.
-
IDE
- IntelliJ IDEA ![c - Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector.
-
Programming Languages
Categories
Sub Categories
Testing
43
Miscellaneous
35
Database
25
Monitoring
21
Utility
21
Security
18
JSON
15
Code Generators
14
Related Awesome Lists
13
Configuration
12
Networking
11
Code Analysis
11
Science
11
Messaging
10
Distributed Applications
9
REST Frameworks
9
Distribution
9
Machine Learning
8
Functional Programming
8
Imagery
8
CLI
8
Data Structures
8
Microservice
8
Bytecode Manipulation
8
Web Frameworks
7
Template Engine
7
ORM
7
Bean Mapping
7
Performance analysis
7
PDF
7
HTTP Clients
7
Job Scheduling
7
Geospatial
6
Serialization
6
Development
6
Financial
6
Logging
6
High Performance
6
Introspection
5
Date and Time
5
JVM and JDK
5
Dependency Injection
5
Native
5
Artificial Intelligence
4
Code Coverage
4
CSV
4
Hypermedia Types
4
Web Crawling
4
Formal Verification
3
Document Processing
3
Natural Language Processing
3
Version Managers
3
PaaS
3
Game Development
3
Reactive libraries
3
Processes
3
Architecture
2
Build
2
GUI
2
Cloud
2
Platform
2
Compiler-compiler
1
Workflow Orchestration Engines
1
Pathfinding
1
Server
1
Constraint Satisfaction Problem Solver
1
Caching
1
Decentralization
1
Distributed Transactions
1
IDE
1
Podcasts and Screencasts
1
Search
1
Computer Vision
1
Websites
1
Keywords
java
215
kotlin
17
spring-boot
17
testing
16
spring
14
microservices
13
static-analysis
12
android
12
monitoring
12
database
10
java-library
10
awesome
10
http
10
jvm
10
json
9
rest-api
8
rest
8
machine-learning
7
annotation-processor
7
awesome-list
7
javascript
7
xml
7
sql
7
java8
6
jdbc
6
orm
6
library
6
high-performance
6
configuration
6
junit
6
api
6
rpc
6
java-8
6
maven-plugin
6
metrics
6
static-code-analysis
6
python
6
logging
6
cloud-native
6
functional-programming
5
testing-tools
5
framework
5
groovy
5
javafx
5
test-automation
5
code-analysis
5
serialization
5
generator
5
grpc
5
cli
5