awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: about 14 hours ago
JSON representation
-
Resources
-
Communities
- Stack Overflow - Question/answer platform.
- r/java - Subreddit for the Java community.
-
Frontends
-
Influential Books
-
Websites
- foojay.io
- Google Java Style
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Java.net
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
- Java Weekly
- Baeldung
- Dzone
- Baeldung
- Dzone
- foojay.io
- InfoQ
- Java Algorithms and Clients
- Java, SQL, and jOOQ
- Javalobby
- JavaWorld
- JAXenter
- RebelLabs
- OverOps Blog
- TheServerSide.com
- Vanilla Java
- Voxxed
- JavaWorld
-
Related Awesome Lists
-
Podcasts and Screencasts
- 140 Second Ducklings - Short videos on Twitter explaining Java debugging in depth.
- A Bootiful Podcast
- Foojay Podcast
- Inside Java
- Java Off Heap
- The Java Posse - Discontinued as of 02/2015.
- A Bootiful Podcast
- Inside Java
- Java Off Heap
- The Java Posse - Discontinued as of 02/2015.
-
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.
- Groundbreakers - Oracle ACEs, Groundbreaker Ambassadors and Java Champions.
- Groundbreakers - Oracle ACEs, Groundbreaker Ambassadors and Java Champions.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
-
-
Projects
-
Build
- 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.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- 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.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
- Buck - Encourages the creation of small, reusable modules consisting of code and resources.
- Bazel - Tool from Google that builds code quickly and reliably.
- Buck2 - Encourages the creation of small, reusable modules consisting of code and resources.
-
Bytecode Manipulation
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- 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)
- Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
- ASM - All-purpose, low-level bytecode manipulation and analysis.
- 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)
- Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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)
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
- 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)
- jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
-
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)
-
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)
-
Architecture
- ArchUnit - Test library for specifying and asserting architecture rules.
- jMolecules - Annotations and interfaces to express design and architecture concepts in code.
-
Categories
Sub Categories
Platform
104
Database
50
People
35
Testing
34
Websites
32
Web Frameworks
25
REST Frameworks
21
Code Generators
18
Distributed Applications
18
Machine Learning
16
Bytecode Manipulation
15
Code Analysis
15
Data Structures
15
Configuration
15
Messaging
14
JVM and JDK
14
Miscellaneous
14
Security
13
Development
13
Monitoring
13
Microservice
12
CLI
12
Distribution
12
Logging
11
Dependency Injection
11
Bean Mapping
11
Build
10
Game Development
10
IDE
10
Podcasts and Screencasts
10
JSON
10
PDF
9
PaaS
9
ORM
8
Science
8
Utility
8
Formal Verification
8
Influential Books
7
Related Awesome Lists
7
Server
7
Constraint Satisfaction Problem Solver
7
Caching
7
Web Crawling
6
Networking
6
Performance analysis
6
Geospatial
6
Mobile Development
6
Distributed Transactions
6
CSV
6
Template Engine
6
Search
5
Computer Vision
5
Compiler-compiler
5
Natural Language Processing
5
Reactive libraries
5
Cluster Management
4
Document Processing
4
Date and Time
4
HTTP Clients
4
GUI
4
Workflow Orchestration Engines
4
Introspection
3
Code Coverage
3
High Performance
3
Architecture
2
Frontends
2
Communities
2
Serialization
2
Imagery
1
Functional Programming
1
Keywords
java
62
static-analysis
10
android
7
static-code-analysis
6
database
6
code-quality
4
spring-boot
4
configuration
4
kotlin
4
code-analysis
4
spring
4
abstract-syntax-tree
3
ast
3
persistence
3
awesome
3
json
3
xml
3
annotations
3
bytecode
3
nosql
3
cpp
3
python
3
redis
3
gradle
3
jvm
3
code-generation
3
distributed
3
code-generator
3
swift
2
cloud-native
2
serialization
2
rest
2
metaprogramming
2
rust
2
parser
2
rpc
2
marshalling
2
mapper
2
mapping
2
linter
2
connection-pool
2
code-transformation
2
monitoring
2
hibernate
2
orm
2
java-bytecode
2
console
2
low-latency
2
cli
2
library
2