awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 5 days ago
JSON representation
-
Resources
-
Related Awesome Lists
-
People
- Brian Goetz - Java Language Architect at Oracle.
- Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
- Lukas Eder - Java Champion, speaker, Founder and CEO Data Geekery (jOOQ).
- Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
- Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
- Peter Lawrey - Peter Lawrey, Java performance expert.
- Stephen Colebourne - Java Champion, speaker.
- Aleksey Shipilëv - Performance geek, benchmarking czar, concurrency bug hunter.
- 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 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.
- 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.
- 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.
-
Communities
- r/java - Subreddit for the Java community.
- Stack Overflow - Question/answer platform.
-
Frontends
-
Influential Books
-
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.
-
Websites
-
-
Projects
-
Security
- Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
- Apache Shiro - Performs authentication, authorization, cryptography and session management.
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
- OACC - Provides permission-based authorization services.
- Passay - Enforce password policy by validating candidate passwords against a configurable rule set.
- Topaz - Fine-grained authorization for applications with support for RBAC, ABAC, and ReBAC.
-
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.
- Checkstyle - Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
- Error Prone - Catches common programming mistakes as compile-time errors.
- NullAway - Eliminates NullPointerExceptions with low build-time overhead.
- 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)
- Error Prone Support - Error Prone extensions: extra bug checkers and a large battery of Refaster templates.
- RefactorFirst - Identifies and prioritizes God Classes and Highly Coupled classes.
-
JSON
- Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
- Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
- Avaje Jsonb - Reflection-free Json binding via source code generation with Jackson-like annotations.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
- Genson - Powerful and easy-to-use Java-to-JSON conversion library.
-
Database
- Realm - Mobile database to run directly inside phones, tablets or wearables.
- requery - Modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform.
- MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
- Apache Calcite - Dynamic data management framework. It contains many of the pieces that comprise a typical database management system.
- Apache Drill - Distributed, schema on-the-fly, ANSI SQL query engine for Big Data exploration.
- Apache Phoenix - High-performance relational database layer over HBase for low-latency applications.
- Debezium - Low latency data streaming platform for change data capture.
- druid - High-performance, column-oriented, distributed data store.
- H2 - Small SQL database notable for its in-memory functionality.
- HSQLDB - HyperSQL 100% Java database.
- JDBI - Convenient abstraction of JDBC.
- Lettuce - Lettuce is a scalable Redis client for building non-blocking Reactive applications.
- Querydsl - Typesafe unified queries.
- Trino - Distributed SQL query engine for big data.
- Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
- Querydsl - Typesafe unified queries.
- QuestDB - High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Apache ShardingSphere - Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any database.
- HikariCP - High-performance JDBC connection pool.
- ArangoDB - ArangoDB Java driver.
- Chronicle Map - Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- eXist - NoSQL document database and application platform. (LGPL-2.1-only)
- FlexyPool - Brings metrics and failover strategies to the most common connection pooling solutions.
- Jest - Client for the Elasticsearch REST API.
- jetcd - Client library for etcd.
- Jinq - Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ).
- Leaf - Distributed ID generate service.
- MariaDB4j - Launcher for MariaDB that requires no installation or external dependencies.
- Redisson - Allows for distributed and scalable data structures on top of a Redis server.
- Speedment - Database access library that utilizes Java 8's Stream API for querying.
- Modality - Lightweight ORM with database reverse engineering features.
- QueryStream - Build JPA Criteria queries using a Stream-like API.
- Xodus - Highly concurrent transactional schema-less and ACID-compliant embedded database.
- OpenDJ - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities.
- Spring Data JPA MongoDB Expressions - Allows you to use MongoDB query language to query your relational database.
- CosId - Universal, flexible, high-performance distributed ID generator.
- Trino - Distributed SQL query engine for big data.
- Jedis - Small client for interaction with Redis, with methods for commands.
-
HTTP Clients
- Retrofit - Typesafe REST client.
- Apache HttpComponents - Toolset of low-level Java components focused on HTTP and associated protocols.
- Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
-
Data Structures
- Tape - Lightning-fast, transactional, file-based FIFO.
- Apache Avro - Data interchange format with dynamic typing, untagged data, and absence of manually assigned IDs.
- Apache Orc - Fast and efficient columnar storage format for Hadoop-based workloads.
- Protobuf - Google's data interchange format.
- Wire - Clean, lightweight protocol buffers.
- Big Queue - Fast and persistent queue based on memory-mapped files.
- HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
- Persistent Collection - Persistent and immutable analogue of the Java Collections Framework.
- RoaringBitmap - Fast and efficient compressed bitmap.
- SBE - Simple Binary Encoding, one of the fastest message formats around.
-
Utility
- Guava - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JADE - Framework and environment for building and debugging multi-agent systems. (LGPL-2.0-only)
- JGit - Lightweight, pure Java library implementing the Git version control system.
- Protégé - Provides an ontology editor and a framework to build knowledge-based systems.
-
Imagery
- ZXing - Multi-format 1D/2D barcode image processing library.
-
Reactive libraries
-
IDE
- IntelliJ IDEA .
-
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 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.
- Time4J - Advanced date and time library. (LGPL-2.1-only)
- Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
-
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.
-
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.
-
Decentralization
-
Categories
Sub Categories
Platform
51
Database
38
People
33
Websites
16
Code Generators
15
Testing
14
REST Frameworks
14
Web Frameworks
13
Code Analysis
12
Configuration
12
Bytecode Manipulation
11
Development
11
Dependency Injection
10
Data Structures
10
Distributed Applications
10
Bean Mapping
9
CLI
9
JVM and JDK
8
Miscellaneous
8
Security
7
Influential Books
7
Podcasts and Screencasts
6
Logging
6
JSON
6
Messaging
6
Distribution
6
Machine Learning
5
CSV
5
Game Development
5
Monitoring
5
Science
5
Utility
4
PaaS
4
Related Awesome Lists
4
ORM
4
Date and Time
4
IDE
4
PDF
4
Build
4
GUI
4
Caching
4
Constraint Satisfaction Problem Solver
4
Formal Verification
4
Performance analysis
3
Search
3
Document Processing
3
Code Coverage
3
Microservice
3
Server
3
Mobile Development
3
Natural Language Processing
3
Computer Vision
3
Artificial Intelligence
3
Template Engine
3
HTTP Clients
3
Geospatial
3
Cluster Management
2
Cloud
2
Architecture
2
Communities
2
Networking
2
Workflow Orchestration Engines
2
Distributed Transactions
2
Reactive libraries
2
Compiler-compiler
2
Introspection
2
Web Crawling
2
Functional Programming
1
High Performance
1
Decentralization
1
Imagery
1
Frontends
1
Serialization
1
Keywords
java
65
static-analysis
10
database
7
android
7
static-code-analysis
6
configuration
5
spring
4
code-analysis
4
spring-boot
4
kotlin
4
code-quality
4
redis
3
distributed
3
json
3
xml
3
bytecode
3
annotations
3
gradle
3
jvm
3
abstract-syntax-tree
3
ast
3
code-generation
3
code-generator
3
python
3
cpp
3
persistence
3
sql
3
awesome
3
nosql
3
objective-c
2
console
2
javascript
2
ios
2
golang
2
jpa
2
code-transformation
2
metaprogramming
2
parser
2
exception-handling
2
cloud-native
2
zookeeper
2
rest
2
monitoring
2
library
2
hibernate
2
orm
2
redis-client
2
marshalling
2
rpc
2
serialization
2