awesome-java
A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java
Last synced: 8 days ago
JSON representation
-
Projects
- Infer
- Telosys - 3.0</kbd> 🟠<br>Java code-generation toolkit with a CLI and model-driven template engine.
- HSQLDB
- Realm - 2.0</kbd> 🔴<br>Mobile database to run directly inside phones, tablets or wearables.
- requery - 2.0</kbd> 🟠<br>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.
- Inversion of Control
- JMLOK 2.0 - directed random tests generation, and suggests a likely cause for each nonconformance detected. (GPL-3.0-only)
- Apache HttpComponents - level Java components focused on HTTP and related protocols.
- Visual Studio Code Java
- ZXing - 2.0</kbd> 🟢<br>Multi-format 1D/2D barcode image processing library.
- Gson - 2.0</kbd> 🟢<br>Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
- Jackson
- Moshi - 2.0</kbd> 🟢<br>Modern JSON library, less opinionated and uses built-in types like List and Map.
- Corretto - cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (GPL-2.0-only WITH Classpath-exception-2.0)
- RedHat Open JDK - 2.0-only WITH Classpath-exception-2.0)
- JObfuscator
- Svix
- hippo4j - 2.0</kbd> 🟠<br>Dynamic and observable thread pool framework.
- AWS Elastic Beanstalk - based, with support for Tomcat and Jetty.
- AWS Lambda
- ClassScan
- CLI2
- Convert - Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
- Finder
- Flatfile
- I18n
- Id
- Javaflow
- JNet
- Monitoring
- Nabla
- OpenPGP
- Performance
- Pipeline
- RxJava - 2.0</kbd> 🟢<br>Allows for composing asynchronous and event-based programs using observable sequences.
- DataMelt - 3.0-or-later)
- Themis - 2.0</kbd> 🟠<br>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.
- Guava - 2.0</kbd> 🟢<br>Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and more.
- JADE - agent systems. (LGPL-2.0-only)
- MapStruct - over-configuration approach.
- ModelMapper - 2.0</kbd> 🟠<br>Intelligent object mapping library that automatically maps objects to each other.
- reMap - 2.0</kbd> 🟢<br>Lambda and method handle-based mapping which requires code and not annotations if objects have different names.
- bytecode-viewer - 3.0</kbd> 🟢<br>Java 8 Jar & Android APK reverse engineering suite.
- Javassist
- Maker - 2.0</kbd> 🟢<br>Provides low level bytecode generation.
- Caffeine - 2.0</kbd> 🟢<br>High-performance, near-optimal caching library.
- jbock
- JLine
- Jansi - 2.0</kbd> 🟠<br>ANSI escape codes to format console output.
- Jexer - draggable windows, built-in terminal window manager, and sixel image support. Looks like [Turbo Vision](https://en.wikipedia.org/wiki/Turbo_Vision).
- Lanterna - 3.0</kbd> 🟢<br>Easy console text-GUI library, similar to curses.
- Checkstyle - 2.1</kbd> 🟢<br>Static analysis of coding conventions and standards.
- Error Prone - 2.0</kbd> 🟢<br>Catches common programming mistakes as compile-time errors.
- Error Prone Support
- NullAway - time overhead.
- PMD
- SonarJava - 3.0-only)
- Spoon
- Spotbugs - 2.1</kbd> 🟢<br>Static analysis of bytecode to find potential bugs.
- Auto - 2.0</kbd> 🟢<br>Generates factory, service, and value classes.
- Geci - 2.0</kbd> 🟠<br>Discovers files that need generated code, updates automatically and writes to the source with a convenient API.
- JHipster - 2.0</kbd> 🟢<br>Yeoman source code generator for Spring Boot and AngularJS.
- Record-Builder - 2.0</kbd> 🟢<br>Companion builder class, withers and templates for Java records.
- JavaCV
- centraldogma - 2.0</kbd> 🟢<br>Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2.
- config
- Configurate - 2.0</kbd> 🟢<br>Configuration library with support for various configuration formats and transformations.
- dotenv - factor configuration library which uses environment-specific files.
- Externalized Properties - 2.0</kbd> 🟢<br>Simple, lightweight, yet powerful configuration library which supports resolution of properties from external sources such as files, databases, git repositories, and any custom sources, plus an extensible post-processing/conversion mechanism.
- Gestalt - 2.0</kbd> 🟢<br>Gestalt offers a comprehensive solution to the challenges of configuration management. It allows you to source configuration data from multiple inputs, merge them intelligently, and present them in a structured, type-safe manner.
- KAConf - 2.0</kbd> 🔴<br>Annotation-based configuration system for Java and Kotlin.
- JaCoP - 3.0)
- FastCSV - optimized, dependency-free and RFC 4180 compliant.
- Persistent Collection
- Protobuf
- RoaringBitmap - 2.0</kbd> 🟢<br>Fast and efficient compressed bitmap.
- Wire - 2.0</kbd> 🟢<br>Clean, lightweight protocol buffers.
- ArangoDB - 2.0</kbd> 🟢<br>ArangoDB Java driver.
- Chronicle Map - 2.0</kbd> 🟢<br>Efficient, in-memory (opt. persisted to disk), off-heap key-value store.
- eXist - 2.1</kbd> 🟢<br>NoSQL document database and application platform.
- FlexyPool - 2.0</kbd> 🟠<br>Brings metrics and failover strategies to the most common connection pooling solutions.
- HikariCP - 2.0</kbd> 🟠<br>High-performance JDBC connection pool.
- Jinq
- MariaDB4j - 2.0</kbd> 🟢<br>Launcher for MariaDB that requires no installation or external dependencies.
- Modality - 2.0</kbd> 🟢<br>Lightweight ORM with database reverse engineering features.
- OpenDJ
- QueryStream - 2.0</kbd> 🔴<br>Build JPA Criteria queries using a Stream-like API.
- QuestDB - 2.0</kbd> 🟢<br>High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST.
- Redisson - 2.0</kbd> 🟢<br>Allows for distributed and scalable data structures on top of a Redis server.
- Spring Data JPA MongoDB Expressions - 2.0</kbd> 🟠<br>Allows you to use MongoDB query language to query your relational database.
- Xodus - 2.0</kbd> 🟢<br>Highly concurrent transactional schema-less and ACID-compliant embedded database.
- CosId - 2.0</kbd> 🟢<br>Universal, flexible, high-performance distributed ID generator.
- iCal4j - 3-Clause</kbd> 🟢<br>Parse and build iCalendar [RFC 5545](https://tools.ietf.org/html/rfc5545) data models.
- ThreeTen-Extra - 3-Clause</kbd> 🟢<br>Additional date-time classes that complement those in JDK 8.
- Time4J - 2.1</kbd> 🔴<br>Advanced date and time library.
- Governator - 2.0</kbd> 🟠<br>Extensions and utilities that enhance Google Guice.
- Guice - 2.0</kbd> 🟢<br>Lightweight and opinionated framework that completes Dagger.
- Faux Pas
- HotswapAgent - 2.0</kbd> 🟢<br>Unlimited runtime class and resource redefinition.
- JavaParser
- Manifold - 2.0</kbd> 🟢<br>Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods.
- SneakyThrow
- Dropwizard Circuit Breaker - 2.0</kbd> 🟠<br>Circuit breaker design pattern for Dropwizard.
- Hazelcast - memory datagrid with a free open-source version.
- ArchUnit - 2.0</kbd> 🟢<br>Test library for specifying and asserting architecture rules.
- jMolecules - 2.0</kbd> 🟠<br>Annotations and interfaces to express design and architecture concepts in code.
- Buck2 - 2.0</kbd> 🟢<br>Encourages the creation of small, reusable modules consisting of code and resources.
- LangChain4j - 2.0</kbd> 🟢<br>Simplifies integration of LLMs with unified APIs and a comprehensive toolbox.
- MCP Java SDK
- Google Cloud Client Libraries - 2.0</kbd> 🟢<br>Client libraries for accessing Google Cloud services from Java applications.
- ASM - purpose, low-level bytecode manipulation and analysis.
- simple-openai
- EasyEntityToDTO
- JSpecify Package-Info Generator - 2.0</kbd> 🟠<br>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.
- RefactorFirst - 2.0</kbd> 🟢<br>Identifies and prioritizes God Classes and Highly Coupled classes.
- Apache ShardingSphere - 2.0</kbd> 🟢<br>Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any database.
- java-tron - 3.0</kbd> 🟢<br>Implementation of the Tron Protocol, whic utilizes blockchains to develop decentralized applications.
- resilience4j - 2.0</kbd> 🟢<br>Functional fault tolerance library.
- OpenIG - performance reverse proxy server with specialized session management and credential replay functionality.
- ScaleCube Services - 2.0</kbd> 🟢<br>Embeddable Cluster-Membership library based on SWIM and gossip protocol.
- Zuul - 2.0</kbd> 🟢<br>Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
- Artipie
- Getdown - user computers and keeping them up to date. Developed as an alternative to Java Web Start.
- jlink.online - 2.0</kbd> 🟢<br>Builds optimized runtimes over HTTP.
- packr - 2.0</kbd> 🔴<br>Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
- really-executable-jars-maven-plugin - 2.0</kbd> 🟠<br>Maven plugin for making self-executing JARs.
- fastexcel
- zerocell - 2.0</kbd> 🔴<br>Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
- Cassandre - 3.0</kbd> 🔴<br>Trading bot framework.
- Philadelphia - 2.0</kbd> 🟢<br>Low-latency financial information exchange.
- Stripe
- ta4j
- Java Path Finder (JPF)
- Fugue
- jOOλ - 2.0</kbd> 🔴<br>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 - 2.0</kbd> 🟢<br>Gatherers library for Java Stream API. Gatherers can enhance streams with custom intermediate operations.
- protonpack
- StreamEx - 2.0</kbd> 🟢<br>Enhances Java 8 Streams.
- vulkan4j - 3-Clause</kbd> 🔴<br>Vulkan, OpenGL ES2 and GLFW Memory Allocator bindings.
- Geo - 2.0</kbd> 🟢<br>GeoHash utilities in Java.
- GraphHopper - 2.0</kbd> 🟢<br>Road-routing engine. Used as a Java library or standalone web service.
- Mapsforge - 3.0</kbd> 🟢<br>Map rendering based on OpenStreetMap data.
- Spatial4j - purpose spatial/geospatial library.
- SnapKit
- JCTools - 2.0</kbd> 🟢<br>Concurrency tools currently missing from the JDK.
- Async Http Client - 2.0</kbd> 🟢<br>Asynchronous HTTP and WebSocket client library.
- Feign - 2.0</kbd> 🟢<br>HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- Google HTTP Client - 2.0</kbd> 🟢<br>Pluggable HTTP transport abstraction with support for java.net.HttpURLConnection, Apache HTTP Client, Android, Google App Engine, XML, Gson, Jackson and Protobuf.
- methanol
- Ribbon - 2.0</kbd> 🟠<br>Client-side IPC library that is battle-tested in the cloud.
- Riptide - side response routing for Spring's RestTemplate.
- unirest-java
- hate - friendly objects according to HAL specification.
- Spring HATEOAS - 2.0</kbd> 🟢<br>Standalone and Spring support for building hypermedia-based APIs using HAL, HAL FORMS, Collection+JSON, ALPS and UBER.
- Barcode-Lib4J - 2.0</kbd> 🟢<br>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 - 2.0</kbd> 🔴<br>Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
- Tess4J - 2.0</kbd> 🟢<br>JNA wrapper for Tesseract OCR API.
- Thumbnailator - quality thumbnail generation library.
- TwelveMonkeys - 3-Clause</kbd> 🟢<br>Collection of plugins that extend the number of supported image file formats.
- image-comparison - 2.0</kbd> 🟢<br>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 - 2.0</kbd> 🟢<br>Comprehensive bindings for libvips, using Java's "Foreign Function & Memory" API.
- ClassGraph - fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages.
- jOOR - 2.0</kbd> 🔴<br>jOOR stands for jOOR Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package.
- ReflectASM - 3-Clause</kbd> 🔴<br>ReflectASM is a very small Java library that provides high performance reflection by using code generation.
- JobRunr - 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 - 2.0</kbd> 🟢<br>Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
- Sundial - 2.0</kbd> 🟠<br>Lightweight framework to simply define jobs, define triggers and start the scheduler.
- Wisp - 2.0</kbd> 🟠<br>Simple library with minimal footprint and straightforward API.
- db-scheduler - 2.0</kbd> 🟢<br>Persistent and cluster-friendly scheduler.
- easy-batch
- shedlock - 2.0</kbd> 🟢<br>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.
- DSL-JSON - 3-Clause</kbd> 🟢<br>JSON library with advanced compile time databinding.
- jackson-modules-java8 - 2.0</kbd> 🟢<br>Set of Jackson modules for Java 8 datatypes and features.
- JSON-io - 2.0</kbd> 🟢<br>Convert Java to JSON/TOON and back. Supports complex object graphs, cyclic references, and TOON format for 40-50% LLM token savings.
- Yasson
- Jolt - 2.0</kbd> 🟢<br>JSON to JSON transformation tool.
- JsonPath - 2.0</kbd> 🟠<br>Extract data from JSON using XPATH-like syntax.
- Graal - 2.0-only WITH Classpath-exception-2.0)
- Microsoft JDK
- Echopraxia - free, meaning it can be implemented with any logging API.
- Logbook - source library for HTTP request and response logging.
- JSAT - 3.0</kbd> 🔴<br>Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution.
- Neureka - array/tensor library.
- Siddhi - 2.0</kbd> 🟠<br>Cloud native streaming and complex event processing engine.
- Smile
- JeroMQ - 2.0</kbd> 🟠<br>Implementation of ZeroMQ.
- RabbitMQ Java client
- Smack - 2.0</kbd> 🟢<br>Cross-platform XMPP client library.
- NATS client - 2.0</kbd> 🟢<br>NATS client.
- Armeria - 2.0</kbd> 🟢<br>Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
- Eureka - 2.0</kbd> 🟢<br>REST-based service registry for resilient load balancing and failover.
- kubernetes-client - 2.0</kbd> 🟢<br>Client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL.
- Sentinel - 2.0</kbd> 🟠<br>Flow control component enabling reliability, resilience and monitoring for microservices.
- FF4J - 2.0</kbd> 🟢<br>Feature Flags for Java.
- IP2Location.io Java SDK
- ISBN core - 10 and ISBN-13 and tools to parse, validate and format one.
- J2ObjC - to-Objective-C translator for porting Android libraries to iOS.
- JBot - 3.0</kbd> 🟠<br>Framework for building chatbots.
- JEmoji - 2.0</kbd> 🟢<br>An auto-generated emoji library that provides type-safe direct access to emojis and alias support for Discord, Slack, GitHub and many more features.
- Jimfs - 2.0</kbd> 🟢<br>In-memory file system.
Categories
Sub Categories
Keywords
java
417
kotlin
45
database
31
commons
30
spring-boot
29
android
26
java-library
25
testing
24
sql
23
spring
23
jvm
22
microservices
22
python
21
library
19
static-analysis
18
apache
16
framework
15
jdbc
15
http
15
scala
14
maven
13
cloud-native
13
rest-api
12
javafx
12
json
12
api
12
machine-learning
12
maven-plugin
12
security
12
javascript
12
junit
11
observability
11
rust
11
big-data
11
groovy
11
rest
11
xml
11
ai
10
web
10
kubernetes
10
gradle
10
logging
10
streaming
10
messaging
10
high-performance
10
llm
9
template-engine
9
gradle-plugin
9
monitoring
9
orm
9