awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 1 day ago
JSON representation
-
Resources
-
Frontends
-
Websites
- foojay.io
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- TheServerSide.com
- Vanilla Java
- Voxxed
- Baeldung
- Dzone
- Baeldung
- foojay.io
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- Vanilla Java
- Voxxed
- Java Weekly
-
Podcasts and Screencasts
- 140 Second Ducklings - Short videos on Twitter explaining Java debugging in depth.
- A Bootiful Podcast
- Inside Java
- Java Off Heap
- The Java Posse - Discontinued as of 02/2015.
- 140 Second Ducklings - Short videos on Twitter explaining Java debugging in depth.
- A Bootiful Podcast
- Inside Java
- The Java Posse - Discontinued as of 02/2015.
- Foojay Podcast
-
People
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Engelbert - Open Source Enthusiast, Speaker, Developer, Developer Advocacy at TimescaleDB.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, \*POJOs in Action- author.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Java Magazine - Official Java Magazine account.
- Javin Paul - Well-known Java blogger.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Lukas Eder - Java Champion, speaker, Founder and CEO Data Geekery (jOOQ).
- Mani Sarkar - Java champion, Polyglot, Software Crafter involved with @graalvm, AI/ML/DL, Data Science, Developer communities, speaker & blogger. Creator of couple of awesome lists like this one.
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- Stephen Colebourne - Java Champion, speaker.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Adam Bien - Freelance author, JavaOne Rockstar speaker, consultant, Java Champion.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
- Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
- Brian Goetz - Java Language Architect at Oracle.
- Bruno Borges - Product Manager/Java Jock at Oracle.
- Chris Engelbert - Open Source Enthusiast, Speaker, Developer, Developer Advocacy at TimescaleDB.
- Chris Richardson - Software architect, consultant, and serial entrepreneur, Java Champion, JavaOne Rock Star, \*POJOs in Action- author.
- Ed Burns - Consulting Member of the Technical Staff at Oracle.
- Eugen Paraschiv - Author of the Spring Security Course.
- Holly Cummins - Technical Lead of IBM London's Bluemix Garage, Java Champion, developer, author, JavaOne rockstar.
- James Weaver - Java/JavaFX/IoT developer, author and speaker.
- Java - Official Java Twitter account.
- Javin Paul - Well-known Java blogger.
- Josh Long - Spring Advocate at Pivotal, author of O'Reilly's Cloud Native Java- and Building Microservices with Spring Boot, JavaOne Rock Star.
- Lukas Eder - Java Champion, speaker, Founder and CEO Data Geekery (jOOQ).
- Mani Sarkar - Java champion, Polyglot, Software Crafter involved with @graalvm, AI/ML/DL, Data Science, Developer communities, speaker & blogger. Creator of couple of awesome lists like this one.
- Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
- Mark Heckler - Pivotal Principal Technologist and Developer Advocate, conference speaker, published author, and Java Champion, focusing on Internet of Things and the cloud.
- Markus Eisele - Java EE evangelist, Red Hat.
- Martin Thompson - Pasty faced performance gangster.
- Monica Beckwith - Performance consultant, JavaOne Rock Star.
- OpenJDK - Official OpenJDK account.
- Randy Shoup - Stitch Fix VP Engineering, speaker, JavaOne Rock Star.
- Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
- Sander Mak - Java Champion, author.
- Simon Maple - Java Champion, VirtualJUG founder, LJC leader, RebelLabs author.
- Spencer Gibb - Software Engineer, Dad, Geek, Co-founder and Lead of Spring Cloud Core @pivotal.
- Stephen Colebourne - Java Champion, speaker.
- Trisha Gee - Java Champion and speaker.
- Venkat Subramaniam - Author, University of Houston professor, MicroSoft MVP award recipient, JavaOne Rock Star, Java Champion.
- Vlad Mihalcea - Java Champion working on Hypersistence Optimizer, database aficionado, author of High-Performance Java Persistence book.
-
Related Awesome Lists
-
Communities
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
-
Influential Books
-
-
Projects
-
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)
- 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.
- Byte Buddy - Further simplifies bytecode generation with a fluent API.
- 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.
-
Caching
- cache2k - In-memory high performance caching library.
- Ehcache - Distributed general-purpose cache.
- Infinispan - Highly concurrent key/value datastore used for caching.
- cache2k - In-memory high performance caching library.
- 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)
-
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)
- 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)
- 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.
-
Code Generators
- Bootify , an application error tracking and performance analysis platform.
- SPM  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.
-
Architecture
- ArchUnit - Test library for specifying and asserting architecture rules.
- jMolecules - Annotations and interfaces to express design and architecture concepts in code.
-
Serialization
- Fury - Blazing fast object graph serialization framework powered by JIT and zero-copy.
- FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
- FST - JDK-compatible, high-performance object graph serialization.
- Kryo - Fast and efficient object graph serialization framework.
- MessagePack - Efficient binary serialization format.
- PHP Serializer - Serializing objects in the PHP serialization format.
-
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.
-
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.
-
Financial
-
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)
- Fugue - Functional extensions to Guava.
- 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.
- Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
-
High Performance
-
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.
-
Imagery
- Barcode-Lib4J - Generates QR Code, DataMatrix, and other 1D/2D barcodes as vector (PDF, EPS, SVG) and raster (PNG, BMP, JPG) images with DPI awareness, high precision, and CMYK color model support.
- Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J - JNA wrapper for Tesseract OCR API.
- Thumbnailator - High-quality thumbnail generation library.
- TwelveMonkeys - Collection of plugins that extend the number of supported image file formats.
- image-comparison - Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison.
- vips-ffm - Comprehensive bindings for libvips, using Java's "Foreign Function & Memory" API.
- scrimage - Immutable, functional, and performant JVM library for manipulation of images.
- ZXing - Multi-format 1D/2D barcode image processing library.
-
Job Scheduling
- JobRunr - Job scheduling library which utilizes lambdas for fire-and-forget, delayed and recurring jobs. Guarantees execution by single scheduler instance using optimistic locking. Has features for persistence, minimal dependencies and is embeddable.
- Quartz - Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
- Sundial - Lightweight framework to simply define jobs, define triggers and start the scheduler.
- Wisp - Simple library with minimal footprint and straightforward API.
- db-scheduler - Persistent and cluster-friendly scheduler.
- easy-batch - Set up batch jobs with simple processing pipelines. Records are read in sequence from a data source, processed in pipeline and written in batches to a data sink.
- shedlock - Makes sure that your scheduled tasks are executed at most once at the same time. If a task is being executed on one node, it acquires a lock which prevents execution of the same task from another node or thread.
-
Native
- Aparapi - Converts bytecode to OpenCL which allows execution on GPUs.
- JavaCPP - Provides efficient and easy access to native C++.
- JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
- JNR - Work with native libraries without writing JNI. Also provides interfaces to common system libraries. Same goals as JNA, but faster, and serves as the basis for the upcoming [Project Panama](http://openjdk.java.net/projects/panama).
- native-lib-loader - Native library loader for extracting and loading native libraries from Java.
-
Pathfinding
- Pathetic - A highly configurable 3D A* pathfinding library that uses specific optimizations for high performance.
-
Processes
- ch.vorburger.exec - Convenient API around Apache Commons Exec.
- zt-exec - Provides a unified API to Apache Commons Exec and ProcessBuilder.
- zt-process-killer - Stops processes started from Java or the system processes via PID.
-
Version Managers
-
Decentralization
-
Programming Languages
Categories
Sub Categories
People
65
Testing
64
Platform
52
Database
42
Miscellaneous
37
Websites
27
REST Frameworks
26
Web Frameworks
25
Security
24
Monitoring
24
Utility
21
Distributed Applications
17
JSON
16
Code Generators
16
Science
15
Messaging
15
Networking
14
Related Awesome Lists
14
Template Engine
14
Microservice
14
Logging
13
Code Analysis
13
Bytecode Manipulation
13
JVM and JDK
13
Configuration
13
Machine Learning
13
Distribution
12
Development
12
PDF
12
ORM
11
Geospatial
11
Dependency Injection
10
HTTP Clients
10
Podcasts and Screencasts
10
Data Structures
10
Imagery
9
CLI
9
Game Development
9
Bean Mapping
9
Functional Programming
8
Search
7
Performance analysis
7
Introspection
7
Server
7
Influential Books
7
Job Scheduling
7
Formal Verification
7
Natural Language Processing
7
Financial
6
Document Processing
6
Constraint Satisfaction Problem Solver
6
Caching
6
PaaS
6
Reactive libraries
6
Serialization
6
Native
5
Web Crawling
5
CSV
5
IDE
5
Distributed Transactions
5
GUI
5
Workflow Orchestration Engines
5
Mobile Development
5
Hypermedia Types
4
Compiler-compiler
4
Date and Time
4
High Performance
4
Build
4
Code Coverage
3
Computer Vision
3
Version Managers
3
Processes
3
Artificial Intelligence
3
Cloud
2
Communities
2
Frontends
2
Cluster Management
2
Architecture
2
Pathfinding
1
Decentralization
1
Keywords
java
205
kotlin
15
android
14
spring-boot
14
spring
13
testing
13
monitoring
12
microservices
12
static-analysis
11
jvm
11
database
9
http
9
java-library
9
json
9
javascript
8
awesome
8
rest
7
rest-api
7
xml
7
rpc
7
annotation-processor
7
awesome-list
6
high-performance
6
metrics
6
jdbc
6
java-8
6
static-code-analysis
6
serialization
6
sql
6
javafx
6
library
6
machine-learning
6
python
6
test-automation
5
orm
5
java8
5
gradle
5
scheduler
5
grpc
5
groovy
5
c
5
framework
5
junit
5
configuration
5
cpp
5
cloud-native
5
performance
4
mocking
4
web
4
security
4