awesome-java

A curated list of awesome frameworks, libraries and software for the Java programming language.

GitHub

42k stars
2k watching
7k forks
last commit: 21 days ago
Linked from 16 awesome lists

awesomeawesome-list

Awesome Java / Projects / Bean Mapping

dOOv 92 almost 2 years ago 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
JMapper 227 12 months ago Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration
MapStruct 7,069 8 days ago Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach
ModelMapper 2,282 about 1 month ago Intelligent object mapping library that automatically maps objects to each other
Orika 1,294 about 2 months ago JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another
reMap 120 2 months ago Lambda and method handle-based mapping which requires code and not annotations if objects have different names
Selma 212 almost 5 years ago Annotation processor-based bean mapper

Awesome Java / 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
Buck 8,559 12 months ago Encourages the creation of small, reusable modules consisting of code and resources
Gradle Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management

Awesome Java / Projects / Bytecode Manipulation

ASM All-purpose, low-level bytecode manipulation and analysis
Byte Buddy Further simplifies bytecode generation with a fluent API
bytecode-viewer 14,626 5 days ago Java 8 Jar & Android APK reverse engineering suite. (GPL-3.0-only)
Byteman Manipulate bytecode at runtime via DSL (rules); mainly for testing/troubleshooting. (LGPL-2.1-or-later)
cglib 4,791 about 2 months ago Bytecode generation library
Javassist 4,099 6 days ago Tries to simplify bytecode editing
Maker 55 12 days ago Provides low level bytecode generation
Mixin 1,403 2 months ago Manipulate bytecode at runtime using real Java code
Perses 66 about 3 years ago Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering
Recaf JVM reverse engineering toolkit, essentially an IDE for Java bytecode

Awesome Java / Projects / Caching

cache2k In-memory high performance caching library
Caffeine 15,761 4 days ago High-performance, near-optimal caching library
Ehcache Distributed general-purpose cache
Infinispan Highly concurrent key/value datastore used for caching

Awesome Java / Projects / CLI

Airline Annotation-based framework for parsing Git-like command-line arguments
JCommander Command-line argument-parsing framework with custom types and validation via implementing interfaces
jbock 86 15 days ago Reflectionless command line parser
JLine 1,468 4 days ago Includes features from modern shells like completion or history
picocli ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args
Jansi 1,112 10 days ago 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
Text-IO 343 11 months ago Aids the creation of full console-based applications
Lanterna 2,263 27 days ago Easy console text-GUI library, similar to curses. (LGPL-3.0-only)

Awesome Java / Projects / 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

Awesome Java / Projects / Code Analysis

Checkstyle 8,310 4 days ago Static analysis of coding conventions and standards. (LGPL-2.1-or-later)
Error Prone 6,825 4 days ago Catches common programming mistakes as compile-time errors
Error Prone Support 189 4 days ago Error Prone extensions: extra bug checkers and a large battery of Refaster templates
Infer 14,920 4 days ago Modern static analysis tool for verifying the correctness of code
jQAssistant Static code analysis with Neo4J-based query language. (GPL-3.0-only)
NullAway 3,624 5 days ago Eliminates NullPointerExceptions with low build-time overhead
PMD 4,828 4 days ago Source code analysis for finding bad coding practices
p3c 30,407 2 months ago Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse
RefactorFirst 436 6 days ago Identifies and prioritizes God Classes and Highly Coupled classes
SonarJava 1,120 4 days ago Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only)
Spoon 1,742 4 days ago Library for analyzing and transforming Java source code
Spotbugs 3,471 4 days ago Static analysis of bytecode to find potential bugs. (LGPL-2.1-only)

Awesome Java / Projects / 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

Awesome Java / Projects / Code Generators

ADT4J 143 over 6 years ago JSR-269 code generator for algebraic data types
Auto 10,417 4 days ago Generates factory, service, and value classes
Avaje Http Server Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE
Bootify Browser-based Spring Boot app generation with JPA model and REST API
FreeBuilder 834 about 1 year ago Automatically generates the Builder pattern
Geci 129 about 2 years ago Discovers files that need generated code, updates automatically and writes to the source with a convenient API
Immutables Annotation processors to generate simple, safe and consistent value objects
JavaPoet 10,812 5 days ago API to generate source files
JHipster 21,487 4 days ago Yeoman source code generator for Spring Boot and AngularJS
Joda-Beans Small framework that adds queryable properties to Java, enhancing JavaBeans
JPA Buddy Plugin for IntelliJ IDEA. Provides visual tools for generating JPA entities, Spring Data JPA repositories, Liquibase changelogs and SQL scripts. Offers automatic Liquibase/Flyway script generation by comparing model to DB, and reverse engineering JPA entities from DB tables
Lombok Code generator that aims to reduce verbosity
Record-Builder 730 4 days ago Companion builder class, withers and templates for Java records
Telosys Simple and light code generator available as an Eclipse Plugin and also as a CLI

Awesome Java / Projects / Compiler-compiler

ANTLR Complex full-featured framework for top-down parsing
JavaCC Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications
JFlex Lexical analyzer generator

Awesome Java / Projects / Computer Vision

BoofCV Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, QR Code and much more
ImageJ Medical image processing application with an API
JavaCV 7,526 2 months ago Java interface to OpenCV, FFmpeg, and much more

Awesome Java / Projects / Configuration

avaje config Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners
centraldogma 599 8 days ago Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2
config 6,151 about 2 months ago Configuration library supporting Java properties, JSON or its human optimized superset HOCON
Configurate 369 7 days ago Configuration library with support for various configuration formats and transformations
Curator Framework High-level API for Apache ZooKeeper
dotenv 46 over 6 years ago Twelve-factor configuration library which uses environment-specific files
Externalized Properties 27 about 1 month ago Lightweight yet powerful configuration library which supports resolution of properties from external sources and an extensible post-processing/conversion mechanism
Gestalt 78 8 days ago 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
ini4j Provides an API for handling Windows' INI files
KAConf 60 about 2 years ago Annotation-based configuration system for Java and Kotlin
microconfig Configuration system designed for microservices which helps to separate configuration from code. The configuration for different services can have common and specific parts and can be dynamically distributed
owner 915 4 days ago Reduces boilerplate of properties

Awesome Java / Projects / Constraint Satisfaction Problem Solver

Choco Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques
JaCoP 220 10 months ago Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0)
OptaPlanner Business planning and resource scheduling optimization solver
Timefold Flexible solver with Spring/Quarkus support and quickstarts for the Vehicle Routing Problem, Maintenance Scheduling, Employee Shift Scheduling and much more

Awesome Java / Projects / CSV

FastCSV 543 7 days ago Performance-optimized, dependency-free and RFC 4180 compliant
jackson-dataformat-csv 194 almost 7 years ago Jackson extension for reading and writing CSV
opencsv Simple CSV parser
Super CSV Powerful CSV parser with support for Dozer, Joda-Time and Java 8
uniVocity-parsers 905 about 2 months ago One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records

Awesome Java / Projects / Data Structures

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
Apache Parquet Columnar storage format based on assembly algorithms from Google's paper on Dremel
Apache Thrift Data interchange format that originated at Facebook
Big Queue 557 about 2 years ago Fast and persistent queue based on memory-mapped files
HyperMinHash-java 54 over 1 year ago Probabilistic data structure for computing union, intersection, and set cardinality in loglog space
Persistent Collection 764 7 months ago Persistent and immutable analogue of the Java Collections Framework
Protobuf 65,302 10 days ago Google's data interchange format
RoaringBitmap 3,504 8 days ago Fast and efficient compressed bitmap
SBE 3,095 4 days ago Simple Binary Encoding, one of the fastest message formats around
Tape 2,466 over 1 year ago Lightning-fast, transactional, file-based FIFO
Wire 4,236 4 days ago Clean, lightweight protocol buffers

Awesome Java / Projects / Database

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
ArangoDB 201 15 days ago ArangoDB Java driver
Chronicle Map 2,768 4 days ago Efficient, in-memory (opt. persisted to disk), off-heap key-value store
Debezium Low latency data streaming platform for change data capture
druid High-performance, column-oriented, distributed data store
eXist 424 5 days ago NoSQL document database and application platform. (LGPL-2.1-only)
FlexyPool 1,073 8 months ago Brings metrics and failover strategies to the most common connection pooling solutions
Flyway Simple database migration tool
H2 Small SQL database notable for its in-memory functionality
HikariCP 19,910 12 days ago High-performance JDBC connection pool
HSQLDB HyperSQL 100% Java database
JDBI Convenient abstraction of JDBC
Jedis 11,812 5 days ago Small client for interaction with Redis, with methods for commands
Jest 2,112 over 1 year ago Client for the Elasticsearch REST API
jetcd 138 over 1 year ago Client library for etcd
Jinq 660 9 months ago Typesafe database queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ)
jOOQ Generates typesafe code based on SQL schema
Leaf 6,427 about 1 year ago Distributed ID generate service
Lettuce Lettuce is a scalable Redis client for building non-blocking Reactive applications
Liquibase Database-independent library for tracking, managing and applying database schema changes
MapDB Embedded database engine that provides concurrent collections backed on disk or in off-heap memory
MariaDB4j 9 3 months ago Launcher for MariaDB that requires no installation or external dependencies
Modality 13 over 1 year ago Lightweight ORM with database reverse engineering features
OpenDJ 366 4 days ago LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities
Querydsl Typesafe unified queries
QueryStream 17 11 months ago Build JPA Criteria queries using a Stream-like API
QuestDB 14,381 4 days ago High-performance SQL database for time series. Supports InfluxDB line protocol, PostgreSQL wire protocol, and REST
Realm 11,451 21 days ago Mobile database to run directly inside phones, tablets or wearables
Redisson 23,230 8 days ago Allows for distributed and scalable data structures on top of a Redis server
requery 3,137 over 2 years ago 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
Speedment 2,095 11 months ago Database access library that utilizes Java 8's Stream API for querying
Spring Data JPA MongoDB Expressions 95 2 months ago Allows you to use MongoDB query language to query your relational database
Trino Distributed SQL query engine for big data
Vibur DBCP JDBC connection pool library with advanced performance monitoring capabilities
Xodus 1,181 8 days ago Highly concurrent transactional schema-less and ACID-compliant embedded database
CosId 475 4 days ago Universal, flexible, high-performance distributed ID generator

Awesome Java / Projects / Date and Time

iCal4j 754 5 days ago Parse and build iCalendar data models
Jollyday 190 5 months ago Determines the holidays for a given year, country/name and eventually state/region
ThreeTen-Extra 394 3 months ago Additional date-time classes that complement those in JDK 8
Time4J 438 8 months ago Advanced date and time library. (LGPL-2.1-only)

Awesome Java / Projects / Dependency Injection

Apache DeltaSpike CDI extension framework
Avaje Inject Microservice-focused compile-time injection framework without reflection
Dagger Compile-time injection framework without reflection
Feather 353 over 6 years ago Ultra-lightweight, JSR-330-compliant dependency injection library
Governator 824 over 1 year ago Extensions and utilities that enhance Google Guice
Guice 12,482 11 days ago Lightweight and opinionated framework that completes Dagger
HK2 Lightweight and dynamic dependency injection framework
JayWire 56 over 1 year ago Lightweight dependency injection framework. (LGPL-3.0-only)

Awesome Java / Projects / Development

AspectJ Seamless aspect-oriented programming extension
DCEVM JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
Faux Pas 132 over 1 year ago 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 2,329 15 days ago Unlimited runtime class and resource redefinition. (GPL-2.0-only)
JavaParser 5,393 4 days ago Parse, modify and generate Java code
JavaSymbolSolver 290 over 6 years ago Symbol solver
Manifold 2,380 4 days ago Re-energizes Java with powerful features like type-safe metaprogramming, structural typing and extension methods
NoException Allows checked exceptions in functional interfaces and converts exceptions to Optional return
SneakyThrow 76 almost 5 years ago Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations
Tail Enable infinite recursion using tail call optimization

Awesome Java / Projects / Distributed Applications

Apache Geode In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery
Apache Storm Realtime computation system
Apache ZooKeeper Coordination service with distributed configuration, synchronization, and naming registry for large distributed systems
Atomix Fault-tolerant distributed coordination framework
Axon Framework for creating CQRS applications
Dropwizard Circuit Breaker 42 almost 5 years ago Circuit breaker design pattern for Dropwizard. (GPL-2.0-only)
Failsafe 4,179 4 months ago Simple failure handling with retries and circuit breakers
Hazelcast 6,103 4 days ago 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 9,702 5 days ago Functional fault tolerance library
OpenIG 75 4 days ago High-performance reverse proxy server with specialized session management and credential replay functionality
ScaleCube Services 610 11 days ago Embeddable Cluster-Membership library based on SWIM and gossip protocol
Zuul 13,458 4 days ago Gateway service that provides dynamic routing, monitoring, resiliency, security, and more

Awesome Java / Projects / Distributed Transactions

Atomikos Provides transactions for REST, SOA and microservices with support for JTA and XA
Bitronix 425 8 months ago Simple but complete implementation of the JTA 1.1 API
Narayana Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
Seata 25,251 5 days ago Delivers high performance and easy to use distributed transaction services under a microservices architecture

Awesome Java / Projects / Distribution

Artipie 506 6 days ago Binary artifact management toolkit which hosts them on the file system or S3
Boxfuse Deployment of JVM applications to AWS using the principles of immutable infrastructure
Capsule 1,148 over 2 years ago Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers
Central Repository Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven, and available in all other build tools
Cloudsmith Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier
Getdown 503 10 months ago System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start
IzPack Setup authoring tool for cross-platform deployments
JavaPackager 1,041 about 1 month ago 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
jDeploy Deploy desktop apps as native Mac, Windows or Linux bundles
jlink.online 45 5 months ago Builds optimized runtimes over HTTP
Nexus Binary management with proxy and caching capabilities
packr 2,557 6 months ago Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS
really-executable-jars-maven-plugin 125 11 months ago Maven plugin for making self-executing JARs

Awesome Java / Projects / Document Processing

Apache POI Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT)
documents4j API for document format conversion using third-party converters such as MS Word
docx4j Create and manipulate Microsoft Open XML files
fastexcel 677 4 days ago High performance library to read and write large Excel (XLSX) worksheets
zerocell 80 2 months ago Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead

Awesome Java / Projects / Financial

Cassandre 581 4 days ago Trading bot framework
Parity 500 over 2 years ago Platform for trading venues
Philadelphia 322 5 days ago Low-latency financial information exchange
Square 39 over 3 years ago Integration with the Square API
Stripe 806 4 days ago Integration with the Stripe API
ta4j 2,043 5 days ago Library for technical analysis

Awesome Java / Projects / Formal Verification

CATG 102 over 6 years ago Concolic unit testing engine. Automatically generates unit tests using formal methods
Checker Framework Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0)
Daikon Detects likely program invariants and generates JML specs based on those invariants
Java Path Finder (JPF) 527 15 days ago JVM formal verification tool containing a model checker and more. Created by NASA
JMLOK 2.0 Detects inconsistencies between code and JML specification through feedback-directed random tests generation, and suggests a likely cause for each nonconformance detected. (GPL-3.0-only)
KeY Formal software development tool that aims to integrate design, implementation, formal specification, and formal verification of object-oriented software as seamlessly as possible. Uses JML for specification and symbolic execution for verification. (GPL-2.0-or-later)
OpenJML Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only)

Awesome Java / Projects / Functional Programming

Cyclops 1,311 over 1 year ago Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more
derive4j 566 almost 2 years ago 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
Functional Java Implements numerous basic and advanced programming abstractions that assist composition-oriented development
jOOλ 2,083 2 months ago 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
protonpack 479 5 months ago Collection of stream utilities
StreamEx 2,189 20 days ago Enhances Java 8 Streams
Vavr Functional component library that provides persistent data types and functional control structures

Awesome Java / Projects / Game Development

FXGL JavaFX Game Development Framework
JBox2D Port of the renowned C++ 2D physics engine
jMonkeyEngine Game engine for modern 3D development
libGDX All-round cross-platform, high-level framework
Litiengine AWT-based, lightweight 2D game engine
LWJGL Robust framework that abstracts libraries like OpenGL/CL/AL
Mini2Dx Beginner-friendly, master-ready framework for rapidly prototyping and building 2D games
Void2D High-level 2D game engine with built-in physics based on Swing

Awesome Java / Projects / Geospatial

Apache SIS Library for developing geospatial applications
ArcGIS Maps SDK for Java 112 4 days ago JavaFX library for adding mapping and GIS functionality to desktop apps
Geo 409 4 days ago GeoHash utilities in Java
GeoTools Library that provides tools for geospatial data. (LGPL-2.1-only)
GraphHopper 5,238 5 days ago Road-routing engine. Used as a Java library or standalone web service
H2GIS Spatial extension of the H2 database. (LGPL-3.0-only)
Jgeohash Library for using the GeoHash algorithm
Mapsforge 1,182 14 days ago Map rendering based on OpenStreetMap data. (LGPL-3.0-only)
Spatial4j 932 over 1 year ago General-purpose spatial/geospatial library

Awesome Java / Projects / GUI

JavaFX Successor of Swing
Scene Builder Visual layout tool for JavaFX applications
SnapKit 249 5 days ago Modern Java UI library for both desktop and web
SWT Graphical widget toolkit

Awesome Java / Projects / High Performance

Agrona 2,846 4 days ago Data structures and utility methods that are common in high-performance applications
Disruptor Inter-thread messaging library
Eclipse Collections 2,426 5 days ago Collections framework inspired by Smalltalk
fastutil Fast and compact type-specific collections
HPPC Primitive collections
JCTools 3,553 4 months ago Concurrency tools currently missing from the JDK
Koloboke 1,004 over 7 years ago Carefully designed extension of the Java Collections Framework with primitive specializations and more

Awesome Java / Projects / HTTP Clients

Apache HttpComponents Toolset of low-level Java components focused on HTTP and associated protocols
Async Http Client 6,273 4 days ago Asynchronous HTTP and WebSocket client library
Avaje Http Client Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements
Feign 9,435 10 days ago HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket
Google HTTP Client 1,386 22 days ago Pluggable HTTP transport abstraction with support for java.net.HttpURLConnection, Apache HTTP Client, Android, Google App Engine, XML, Gson, Jackson and Protobuf
methanol 235 14 days ago HTTP client extensions library
Retrofit Typesafe REST client
Ribbon 4,561 3 months ago Client-side IPC library that is battle-tested in the cloud
Riptide 295 4 days ago Client-side response routing for Spring's RestTemplate
unirest-java 2,602 28 days ago Simplified, lightweight HTTP client library

Awesome Java / Projects / Hypermedia Types

hate 22 11 months ago Builds hypermedia-friendly objects according to HAL specification
JSON-LD 375 9 months ago JSON-LD implementation
Siren4J 25 5 months ago Library for the Siren specification

Awesome Java / Projects / IDE

Eclipse Established open-source project with support for lots of plugins and languages
IntelliJ IDEA Supports many JVM languages and provides good options for Android development. The commercial edition targets the enterprise sector
jGRASP Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer
NetBeans Provides integration for several Java SE and EE features, from database access to HTML5
SnapCode Modern IDE for Java running in the browser, focused on education
Visual Studio Code Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace

Awesome Java / Projects / Imagery

Imgscalr 1,227 12 months ago Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D
Tess4J 1,590 about 2 months ago JNA wrapper for Tesseract OCR API
Thumbnailator 5,157 8 months ago High-quality thumbnail generation library
TwelveMonkeys 1,886 4 days ago Collection of plugins that extend the number of supported image file formats
ZXing 32,698 5 days ago Multi-format 1D/2D barcode image processing library
image-comparison 338 4 months ago 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

Awesome Java / Projects / Introspection

ClassGraph 2,739 18 days ago ClassGraph (formerly FastClasspathScanner) is an uber-fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages
jOOR 2,803 2 months ago jOOR stands for jOOR Object Oriented Reflection. It is a simple wrapper for the java.lang.reflect package
Mirror Mirror was created to bring light to a simple problem, usually named ReflectionUtil, which is on almost all projects that rely on reflection to do advanced tasks
Objenesis Allows dynamic instantiation without default constructor, e.g. constructors which have required arguments, side effects or throw exceptions
ReflectASM 1,525 over 1 year ago ReflectASM is a very small Java library that provides high performance reflection by using code generation
Reflections 4,716 4 months ago Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project

Awesome Java / Projects / Job Scheduling

JobRunr 2,344 4 days ago 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 6,245 8 days ago Feature-rich, open source job scheduling library that can be integrated within virtually any Java application
Sundial 269 3 months ago Lightweight framework to simply define jobs, define triggers and start the scheduler
Wisp 132 about 1 month ago Simple library with minimal footprint and straightforward API
db-scheduler 1,235 8 days ago Persistent and cluster-friendly scheduler
easy-batch 608 over 1 year ago 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 3,611 4 days ago 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

Awesome Java / Projects / JSON

Avaje Jsonb Reflection-free Json binding via source code generation with Jackson-like annotations
DSL-JSON 1,008 7 months ago JSON library with advanced compile time databinding
Genson Powerful and easy-to-use Java-to-JSON conversion library
Gson 23,294 4 days ago Serializes objects to JSON and vice versa. Good performance with on-the-fly usage
HikariJSON 461 over 1 year ago High-performance JSON parser, 2x faster than Jackson
jackson-modules-java8 399 6 days ago Set of Jackson modules for Java 8 datatypes and features
Jackson-datatype-money 250 about 2 months ago Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types
Jackson 9,057 3 months ago Similar to GSON, but offers performance gains if you need to instantiate the library more often
JSON-io 330 5 days ago Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer
jsoniter Fast and flexible library with iterator and lazy parsing API
LoganSquare 3,210 almost 3 years ago JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library
Moshi 9,731 11 days ago Modern JSON library, less opinionated and uses built-in types like List and Map
Yasson 201 about 2 months ago Binding layer between classes and JSON documents similar to JAXB
fastjson 25,723 3 months ago Very fast processor with no additional dependencies and full data binding
Jolt 1,548 2 months ago JSON to JSON transformation tool
JsonPath 8,882 2 months ago Extract data from JSON using XPATH-like syntax
JsonSurfer 293 4 months ago Streaming JsonPath processor dedicated to processing big and complicated JSON data

Awesome Java / Projects / JVM and JDK

Adopt Open JDK Community-driven OpenJDK builds, including both HotSpot and OpenJ9
Avian 1,218 over 3 years ago JVM with JIT, AOT modes and iOS port
Corretto No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (GPL-2.0-only WITH Classpath-exception-2.0)
Dragonwell8 4,195 26 days ago Downstream version of OpenJDK optimized for online e-commerce, financial, logistics applications
Graal 20,277 3 days ago Polyglot embeddable JVM. (GPL-2.0-only WITH Classpath-exception-2.0)
Liberica JDK Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
OpenJ9 3,273 4 days ago High performance, enterprise-calibre, flexibly licensed, openly-governed cross-platform JVM extending and augmenting the runtime technology components from the Eclipse OMR and OpenJDK project
Open JDK Open JDK community home. (GPL-2.0-only WITH Classpath-exception-2.0)
ParparVM 1,705 5 days ago VM with non-blocking, concurrent GC for iOS. (GPL-2.0-only WITH Classpath-exception-2.0)
RedHat Open JDK RedHat's OpenJDK distribution. (GPL-2.0-only WITH Classpath-exception-2.0)
SAP Machine SAP's no-cost, rigorously tested and JCK-verified OpenJDK friendly fork. (GPL-2.0-only WITH Classpath-exception-2.0)
Zulu OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH Classpath-exception-2.0)
Microsoft JDK 321 7 months ago Microsoft Build of OpenJDK, Free, Open Source, Freshly Brewed!

Awesome Java / Projects / Logging

Apache Log4j 2 Complete rewrite with a powerful plugin and configuration architecture
Echopraxia 53 3 months ago API designed around structured logging, rich context, and conditional logging. There are Logback and Log4J2 implementations, but Echopraxia's API is completely dependency-free, meaning it can be implemented with any logging API
Graylog Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
Kibana Analyzes and visualizes log files. Some features require payment
Logback Robust logging library with interesting configuration options via Groovy
Logbook 1,827 5 days ago Extensible, open-source library for HTTP request and response logging
Logstash Tool for managing log files
p6spy 2,065 over 2 years ago Enables logging for all JDBC transactions without changes to the code
SLF4J Abstraction layer/simple logging facade
tinylog Lightweight logging framework with static logger class
OpenTracing Toolbox 180 about 1 year ago Collection of libraries that build on top of OpenTracing and provide extensions and plugins to existing instrumentations

Awesome Java / Projects / Machine Learning

Apache Flink Fast, reliable, large-scale data processing engine
Apache Mahout Scalable algorithms focused on collaborative filtering, clustering and classification
DatumBox Provides several algorithms and pre-trained models for natural language processing
Deeplearning4j Distributed and multi-threaded deep learning library
DJL High-level and engine-agnostic framework for deep learning
H2O Analytics engine for statistics over big data
Intelligent java 65 8 months ago Seamlessly integrate with remote deep learning and language models programmatically
JSAT 788 almost 2 years ago Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
m2cgen 2,800 2 months ago CLI tool to transpile models into native code
Neureka 69 4 months ago A lightweight, platform independent, OpenCL accelerated nd-array/tensor library
oj! Algorithms High-performance mathematics, linear algebra and optimisation needed for data science, machine learning and scientific computing
Oryx 2 1,786 about 3 years ago Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering
Siddhi 1,514 about 1 month ago Cloud native streaming and complex event processing engine
Smile 6,017 11 days ago Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library
Tribuo Provides tools for classification, regression, clustering, model development and interfaces with other libraries such as scikit-learn, pytorch and TensorFlow
Weka Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)

Awesome Java / Projects / Messaging

Aeron 7,338 4 days ago Efficient, reliable, unicast and multicast message transport
Apache ActiveMQ Message broker that implements JMS and converts synchronous to asynchronous communication
Apache Camel Glues together different transport APIs via Enterprise Integration Patterns
Apache Kafka High-throughput distributed messaging system
Apache Pulsar Distributed pub/sub-messaging system
Apache RocketMQ Fast, reliable, and scalable distributed messaging platform
Apache Qpid Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms
AutoMQ 3,731 5 days ago AutoMQ is a cloud-native, serverless reinvented Kafka that is easily scalable, manage-less and cost-effective
Deezpatch 42 23 days ago Simple, lightweight, and performant dispatch library for decoupling messages (requests and events) and message handlers
EventBus 24,666 8 months ago Simple publish/subscribe event bus
Hermes Fast and reliable message broker built on top of Kafka
JeroMQ 2,362 17 days ago Implementation of ZeroMQ
Nakadi 956 6 months ago Provides a RESTful API on top of Kafka
RabbitMQ Java client 1,242 4 days ago RabbitMQ client
Smack 2,375 9 days ago Cross-platform XMPP client library
NATS client 567 5 days ago NATS client

Awesome Java / Projects / Microservice

ActiveRPC Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions
Apollo Libraries for writing composable microservices
Armeria 4,800 4 days ago Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC
consul-api 416 over 1 year ago Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service
Eureka 12,385 about 1 month ago REST-based service registry for resilient load balancing and failover
Helidon Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile
JDA 4,305 12 days ago Wrapping of the Discord REST API and its WebSocket events
KeenType Modernized version of a Java-based implementation of the New Typesetting System, which was heavily based on Donald E. Knuth's original TeX
kubernetes-client 3,396 4 days ago Client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL
Micronaut Modern full-stack framework with focus on modularity, minimal memory footprint and startup time
Nacos Dynamic service discovery, configuration and service management platform for building cloud native applications
OpenAI-Java 4,751 4 months ago Java libraries for using OpenAI's GPT-3 API
Quarkus Kubernetes stack tailored for the HotSpot and Graal VM
Sentinel 22,336 12 days ago Flow control component enabling reliability, resilience and monitoring for microservices

Awesome Java / Projects / Miscellaneous

AWS SDK for Java 2.0 2,167 4 days ago Wrapper around AWS' API
CQEngine 1,715 9 months ago Ultra-fast, SQL-like queries on Java collections
Design Patterns 89,545 12 days ago Implementation and explanation of the most common design patterns
FF4J 1,380 4 days ago Feature Flags for Java
FizzBuzz Enterprise Edition 21,276 3 months ago No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. (No explicit license)
IP2Location.io Java SDK 4 7 months ago Wrapper for the IP2Location.io Geolocation API and the IP2WHOIS domain WHOIS API
ISBN core 3 3 months ago A small library that contains a representation object of ISBN-10 and ISBN-13 and tools to parse, validate and format one
J2ObjC 5,990 10 days ago Java-to-Objective-C translator for porting Android libraries to iOS
JBake Static website generator
JBot 1,202 3 months ago Framework for building chatbots. (GPL-3.0-only)
JCuda JCuda offers Java bindings for CUDA and CUDA-related libraries
Jimfs 2,428 5 days ago In-memory file system
JObfuscator Source code obfuscator
Joda-Money Basic currency and money classes and algorithms not provided by the JDK
jOOX 494 2 months ago Simple wrapper for the org.w3c.dom package, to allow for fluent XML document creation and manipulation with an API inspired by jQuery
JPad Snippet runner
jsweet 1,460 10 months ago Source transpiler to TypeScript/JavaScript
Maven Wrapper 1,588 almost 3 years ago Analogue of Gradle Wrapper for Maven, allows building projects without installing maven
Membrane Service Proxy 457 5 days ago Open-source, reverse-proxy framework
MinimalFTP 160 8 months ago Lightweight, small and customizable FTP server
LittleProxy 2,062 3 months ago High performance HTTP proxy atop Netty's event-based networking library
Modern Java - A Guide to Java 8 16,721 about 1 year ago Popular Java 8 guide
Modernizer 368 4 days ago Detect uses of legacy Java APIs
OctoLinker 5,271 about 1 year ago Browser extension which allows to navigate through code on GitHub more efficiently
OpenRefine Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases
PipelinR 414 over 1 year ago Small utility library for using handlers and commands with pipelines
Polyglot for Maven 890 5 days ago Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML
RR4J 22 over 2 years ago RR4J is a tool that records java bytecode execution and later allows developers to replay locally
Simple Java Mail 1,221 4 days ago Mailing with a clean and fluent API
Smooks 395 6 days ago Framework for fragment-based message processing. (Apache-2.0 OR LGPL-3.0-or-later)
Svix 2,324 4 days ago Library for the Svix API to send webhooks and verify signatures
Togglz Implementation of the Feature Toggles pattern
TypeTools 615 over 1 year ago Tools for resolving generic types
XMLBeam 73 about 1 year ago Processes XML by using annotations or XPath within code
yGuard 369 about 2 months ago Obfuscation via renaming and shrinking

Awesome Java / Projects / Mobile Development

Codename One Cross-platform solution for writing native mobile apps. (GPL-2.0-only WITH Classpath-exception-2.0)
MobileUI Cross-platform framework for developing mobile apps with native UI in Java and Kotlin
Multi-OS Engine Open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps

Awesome Java / Projects / Monitoring

Automon 575 4 days ago Combines the power of AOP with monitoring and/or logging tools
Datadog 573 4 days ago Modern monitoring & analytics
Dropwizard Metrics 7,835 4 days ago Expose metrics via JMX or HTTP and send them to a database
Failsafe Actuator 53 over 2 years ago Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment
Glowroot Open-source Java APM
HertzBeat 5,529 6 days ago Real-time monitoring system with custom-monitor and agentless
hippo4j 5,512 5 days ago Dynamic and observable thread pool framework
inspectIT Captures detailed run-time information via hooks that can be changed on the fly. It supports tracing over multiple systems via the OpenTracing API and can correlate the data with end user monitoring
Instrumental Real-time Java application performance monitoring. A commercial service with free development accounts
Jaeger client 491 over 2 years ago Jaeger client
JavaMelody 2,937 11 days ago Performance monitoring and profiling
jmxtrans 1,705 about 2 years ago Connect to multiple JVMs and query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVM attributes. Supports different output writes, including Graphite, Ganglia, and StatsD
Jolokia JMX over REST
Micrometer 4,450 4 days ago Vendor-neutral metrics/observability facade for the most popular metrics/observability libraries
Micrometer Tracing 244 4 days ago Vendor-neutral distributed tracing facade for the most popular tracer libraries
nudge4j 159 over 4 years ago Remote developer console from the browser for Java 8 via bytecode injection
OpenTelemetry 1,973 4 days ago Instrument, generate, collect, and export telemetry data to help you analyze your software’s performance and behavior
Pinpoint 13,393 5 days ago Open-source APM tool
Prometheus 2,172 4 days ago Provides a multi-dimensional data model, DSL, autonomous server nodes and much more
Sentry 1,149 4 days ago Integration with , an application error tracking and performance analysis platform
SPM 23 12 days ago Performance monitor with distributing transaction tracing for JVM apps
Stagemonitor 1,706 over 1 year ago Open-source performance monitoring and transaction tracing for JVM apps
Sysmon 155 almost 8 years ago Lightweight platform monitoring tool for Java VMs
zipkin Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures

Awesome Java / Projects / Native

Aparapi 466 about 2 years ago Converts bytecode to OpenCL which allows execution on GPUs
JavaCPP 4,479 2 months ago Provides efficient and easy access to native C++
JNA 8,479 20 days ago Work with native libraries without writing JNI. Also provides interfaces to common system libraries
JNR 1,250 8 months ago 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

Awesome Java / Projects / Natural Language Processing

CogCompNLP 470 about 1 year ago Provides common annotators for plain text input. (Research and Academic Use License)
CoreNLP Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
DKPro Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc
LingPipe Toolkit for tasks ranging from POS tagging to sentiment analysis

Awesome Java / Projects / Networking

Commons-networking 16 over 2 years ago Client for server-sent events (SSE)
Comsat 598 almost 7 years ago Integrates standard Java web-related APIs with Quasar fibers and actors
Dubbo 40,411 3 days ago High-performance RPC framework
Grizzly NIO framework. Used as a network layer in Glassfish
gRPC 11,387 4 days ago RPC framework based on protobuf and HTTP/2
KryoNet 1,819 over 3 years ago Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo
MINA Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO
Netty Framework for building high-performance network applications
Drift 243 5 months ago Easy-to-use, annotation-based library for creating Thrift clients and serializable types
ServiceTalk 914 5 days ago Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms
sshj 2,488 22 days ago Programmatically use SSH, SCP or SFTP
TLS Channel 191 10 days ago Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS
Undertow Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
urnlib 30 over 1 year ago Represent, parse and encode URNs, as in RFC 2141. (GPL-3.0-only)
Fluency 154 8 days ago High throughput data ingestion logger to Fluentd and Fluent Bit

Awesome Java / Projects / ORM

Apache Cayenne Provides a clean, static API for data access. Also includes a GUI Modeler for working with database mappings, and DB reverse engineering and generation
Doma 439 4 days ago Database access framework that verifies and generates source code at compile time using annotation processing as well as native SQL templates called two-way SQL
Ebean Provides simple and fast data access
EclipseLink Supports a number of persistence standards: JPA, JAXB, JCA and SDO
Hibernate Robust and widely used, with an active community. (LGPL-2.1-only)
MyBatis 19,719 4 days ago Couples objects with stored procedures or SQL statements
ObjectiveSql 1,270 5 months ago ActiveRecord ORM for rapid development and convention over configuration
Permazen 403 26 days ago Language-natural persistence layer
SimpleFlatMapper 438 16 days ago Simple database and CSV mapper

Awesome Java / Projects / PaaS

AWS Elastic Beanstalk AWS-based, with support for Tomcat and Jetty
AWS Lambda Serverless computation
Google Cloud Google's cloud infrastructure
Heroku Abstract computing environments
Microsoft Azure Microsoft's cloud infrastructure
OpenShift Provides additionally an on-premise solution

Awesome Java / Projects / PDF

Apache FOP Creates PDFs from XSL-FO
Apache PDFBox Toolbox for creating and manipulating PDFs
Dynamic Jasper Abstraction layer to JasperReports. (LGPL-3.0-only)
DynamicReports 210 8 days ago Simplifies JasperReports. (LGPL-3.0-only)
Eclipse BIRT Report engine for creating PDF and other formats (DOCX, XLSX, HTML, etc) using Eclipse-based visual editor
flyingsaucer 1,986 5 days ago XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
iText Creates PDF files programmatically
JasperReports Complex reporting engine. (LGPL-3.0-only)
Open HTML to PDF 1,913 4 months ago Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox
OpenPDF 3,526 about 1 month ago Open-source iText fork. (LGPL-3.0-only & MPL-2.0)
Tabula 1,817 8 days ago Extracts tables from PDF files

Awesome Java / Projects / Performance analysis

fastThread Analyze and visualize thread dumps with a free cloud-based upload interface
GCeasy Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface
honest-profiler 1,249 10 months ago Low-overhead, bias-free sampling profiler
jHiccup 684 4 months ago Logs and records platform JVM stalls
JITWatch 3,079 about 2 months ago Analyze the JIT compiler optimisations made by the HotSpot JVM
JMH Harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targeting the JVM. (GPL-2.0 only WITH Classpath-exception-2.0)
LatencyUtils 453 5 months ago Utilities for latency measurement and reporting

Awesome Java / Projects / Platform

BCEL Byte Code Engineering Library - analyze, create, and manipulate Java class files
BeanUtils Easy-to-use wrappers around the Java reflection and introspection APIs
BeanUtils2 Redesign of Commons BeanUtils
BSF Bean Scripting Framework - interface to scripting languages, including JSR-223
Chain Chain of Responsibility pattern implementation
ClassScan Find Class interfaces, methods, fields, and annotations without loading
CLI Command-line arguments parser
CLI2 Redesign of Commons CLI
Codec General encoding/decoding algorithms, e.g. phonetic, base64 or URL
Collections Extends or augments the Java Collections Framework
Compress Defines an API for working with tar, zip and bzip2 files
Configuration Reading of configuration/preferences files in various formats
Convert Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another
CSV Component for reading and writing comma separated value files
Daemon Alternative invocation mechanism for unix-daemon-like java code
DBCP Database connection pooling services
DbUtils JDBC helper library
Digester XML-to-Java-object mapping utility
Email Library for sending e-mail from Java
Exec API for dealing with external process execution and environment management in Java
FileUpload File upload capability for your servlets and web applications
Finder Java library inspired by the UNIX find command
Flatfile Java library for working with flat data structures
Functor Function that can be manipulated as an object, or an object representing a single, generic function
Graph General purpose graph APIs and algorithms
I18n Adds the feature of localized message bundles that consist of one or many localized texts that belong together
Id Id is a component used to generate identifiers
Imaging Image library
IO Collection of I/O utilities
Javaflow Continuation implementation to capture the state of the application
JCI Java Compiler Interface
JCS Java Caching System
Jelly XML based scripting and processing engine
Jexl Expression language which extends the Expression Language of the JSTL
JNet JNet allows to use dynamically register url stream handlers through the java.net API
JXPath Utilities for manipulating Java Beans using the XPath syntax
Lang Provides extra functionality for classes in java.lang
Logging Wrapper around a variety of logging API implementations
Math Lightweight, self-contained mathematics and statistics components
Monitoring Monitoring aims to provide a simple but extensible monitoring solution for Java applications
Nabla Nabla provides automatic differentiation classes that can generate derivative of any function implemented in the Java language
Net Collection of network utilities and protocol implementations
OGNL Object-graph navigation language
OpenPGP Interface to signing and verifying data using OpenPGP
Performance Small framework for microbenchmark clients, with implementations for Commons DBCP and Pool
Pipeline Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects
Pool Generic object pooling component
Proxy Library for creating dynamic proxies
RDF Common implementation of RDF 1.1 that could be implemented by systems on the JVM
RNG Commons Rng provides implementations of pseudo-random numbers generators
SCXML Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine
Validator Framework to define validators and validation rules in an xml file
VFS Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system
Weaver Provides an easy way to enhance (weave) compiled bytecode
CUBA Platform High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin
Light-4J 3,608 8 days ago Fast, lightweight and productive microservices framework with built-in
Orienteer 241 8 months ago Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications
Spring Provides many packages for dependency injection, aspect-oriented programming, security, etc

Awesome Java / Projects / Processes

ch.vorburger.exec 30 4 days ago Convenient API around Apache Commons Exec
zt-exec 878 7 months ago Provides a unified API to Apache Commons Exec and ProcessBuilder
zt-process-killer 127 10 months ago Stops processes started from Java or the system processes via PID

Awesome Java / Projects / Reactive libraries

Akka Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications
Reactive Streams 4,797 7 months ago Provides a standard for asynchronous stream processing with non-blocking backpressure
Reactor 4,934 5 days ago Library for building reactive fast-data applications
RxJava 47,852 9 days ago Allows for composing asynchronous and event-based programs using observable sequences
vert.x Polyglot event-driven application framework

Awesome Java / Projects / REST Frameworks

Dropwizard 8,507 4 days ago Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics
Elide Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model
Jersey JAX-RS reference implementation
Microserver 940 over 1 year ago Convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles
Rapidoid Simple, secure and extremely fast framework consisting of an embedded HTTP server, GUI components and dependency injection
rest.li 2,505 9 days ago Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling
RESTEasy Fully certified and portable implementation of the JAX-RS specification
RestExpress 938 about 2 months ago Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance
Restlet Framework 648 6 days ago Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API
Spark Sinatra inspired framework
Crnk Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more
springdoc-openapi 3,256 6 days ago Automates the generation of API documentation using Spring Boot projects
Swagger Standard, language-agnostic interface to REST APIs

Awesome Java / Projects / Science

BioJava Facilitates processing biological data by providing algorithms, file format parsers, sequencing and 3D visualization commonly used in bioinformatics
Chart-FX 504 5 days ago Scientific charting library with focus on performance optimised real-time data visualisation at 25 Hz update rates for large data sets
DataMelt Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
Erdos 126 about 1 year ago Modular, light and easy graph framework for theoretic algorithms
GraphStream Library for modeling and analyzing dynamic graphs
JFreeChart 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
JGraphT 2,589 18 days ago Graph library that provides mathematical graph-theory objects and algorithms
JGraphX 668 almost 4 years ago Library for visualizing (mainly Swing) and interacting with node-edge graphs
LogicNG 132 25 days ago Library for creating, manipulating and solving Boolean and Pseudo-Boolean formulas
Mines Java Toolkit 77 over 3 years ago Library for geophysical scientific computation, visualization and digital signal analysis
Morpheus 238 10 months ago Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM
Orekit A low level space flight dynamics library providing basic elements (orbits, dates, attitude, frames...) and various algorithms (conversions, propagations, pointing...) to handle them
Orson-Charts 107 over 2 years ago Generates a wide variety of 3D charts that can be displayed with Swing and JavaFX or exported to PDF, SVG, PNG and JPEG. (GPL-3.0-only)
Tablesaw 3,527 2 months ago Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data
XChart 1,501 about 1 month ago Light-weight library for plotting data. Many customizable chart types are available
Apache Lucene High-performance, full-featured, cross-platform, text search engine library
Apache Solr Enterprise search engine optimized for high-volume traffic
Elasticsearch Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents
Indexer4j 51 over 5 years ago Simple and light full text indexing and searching library

Awesome Java / Projects / Security

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
DependencyCheck 6,336 4 days ago Detects publicly disclosed vulnerabilities contained within a project's dependencies
Cryptomator Multiplatform, transparent, client-side encryption of files in the cloud. (GPL-3.0-only)
Hdiv 214 22 days ago Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks
jjwt 10,229 11 days ago JSON web token for Java and Android
jwt-java 11 over 1 year ago Easily create and parse JSON Web Tokens and create customized JWT validators using a fluent API
Jwks RSA 194 2 months ago JSON Web Key Set parser
Kalium 207 about 1 year ago Binding for the Networking and Cryptography (NaCl) library
Keycloak Integrated SSO and IDM for browser apps and RESTful web services
Keywhiz 2,619 about 1 year ago System for distributing and managing secrets
Nbvcxz 292 about 1 month ago Advanced password strength estimation
OACC Provides permission-based authorization services
OpenAM 768 5 days ago Access management solution that includes authentication, SSO, authorization, federation, entitlements and web services security
OTP-Java 186 12 months ago One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP)
pac4j 2,419 4 days ago Security engine
Passay Enforce password policy by validating candidate passwords against a configurable rule set
Password4j 350 2 months ago User-friendly cryptographic library that supports Argon2, Bcrypt, Scrypt, PBKDF2 and various other cryptographic hash functions
SecurityBuilder 45 over 3 years ago Fluent Builder API for JCA and JSSE classes and especially X.509 certificates
SSLContext-Kickstart 493 5 days ago High-level SSL context builder for configuring HTTP clients with SSL/TLS
Themis 1,859 23 days ago 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
Tink 13,481 6 months ago Provides a simple and misuse-proof API for common cryptographic tasks
Topaz Fine-grained authorization for applications with support for RBAC, ABAC, and ReBAC

Awesome Java / Projects / Serialization

FlatBuffers 23,153 5 days ago Memory-efficient serialization library that can access serialized data without unpacking and parsing it
FST 1,583 over 1 year ago JDK-compatible, high-performance object graph serialization
Fury 3,023 7 days ago Blazing fast object graph serialization framework powered by JIT and zero-copy
Kryo 6,181 5 days ago Fast and efficient object graph serialization framework
MessagePack 1,409 9 days ago Efficient binary serialization format
PHP Serializer 15 over 6 years ago Serializing objects in the PHP serialization format

Awesome Java / Projects / Server

Apache Tomcat Robust, all-round server for Servlet and JSP
Apache TomEE Tomcat plus Java EE
Jetty Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations
nanohttpd 6,937 about 1 year ago Tiny, easily embeddable HTTP server
WildFly Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)

Awesome Java / Projects / Template Engine

Freemarker Library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data
Handlebars.java Logicless and semantic Mustache templates
Jade4J 706 over 2 years ago Implementation of Pug (formerly known as Jade)
Jamal 58 5 days ago Extendable template engine embedded into Maven/JavaDoc, supporting multiple extensions (Groovy, Ruby, JavaScript, JShell, PlantUml) with support for snippet handling
jstachio 257 22 days ago Typesafe Mustache templating engine
jte 764 4 days ago Compiles to classes, and uses an easy syntax, several features to make development easier and provides fast execution and a small footprint
Jtwig 301 over 6 years ago Modular, configurable and fully tested template engine
Pebble Inspired by Twig and separates itself with its inheritance feature and its easy-to-read syntax. It ships with built-in autoescaping for security and it includes integrated support for internationalization
Rocker 741 4 months ago Optimized, memory efficient and speedy template engine producing statically typed, plain objects
StringTemplate 944 3 months ago Template engine for generating source code, web pages, emails, or any other formatted text output
Thymeleaf Aims to be a substitute for JSP and works for XML files

Awesome Java / Projects / Testing

Awaitility 3,807 about 2 months ago DSL for synchronizing asynchronous operations
ConcurrentUnit 420 6 months ago Toolkit for testing multi-threaded and asynchronous applications
GreenMail In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
Hoverfly Java 168 28 days ago Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services
Karate 8,105 10 days ago DSL that combines API test-automation, mocks and performance-testing making testing REST/HTTP services easy
REST Assured 6,820 about 2 months ago DSL for easy testing of REST/HTTP services
WebTau 366 8 days ago Test across REST-API, Graph QL, Browser, Database, CLI and Business Logic with consistent set of matchers and concepts
Cucumber 2,699 5 days ago Provides a way to describe features in a plain language which customers can understand
Cukes-REST 112 about 1 year ago Collection of Gherkin steps for REST-service testing using Cucumber
J8Spec 47 over 2 years ago Follows a Jasmine-like syntax
JBehave Extensively configurable framework that describes stories
JGiven Provides a fluent API which allows for simpler composition
Lamdba Behave 254 over 2 years ago Aims to provide a fluent API to write tests in long and descriptive sentences that read like plain English
Serenity BDD 719 10 days ago Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications
Beanmother 115 almost 2 years ago Sets up beans from YAML fixtures
Datafaker 1,155 4 days ago Modern fake data generator forked from Java Faker
Fixture Factory 445 over 1 year ago Generates fake objects from a template
jFairy 741 7 months ago Fake data generator
Instancio 894 5 days ago Automates data setup in unit tests by generating fully-populated, reproducible objects. Includes JUnit 5 extension
Randomized Testing 173 7 months ago JUnit test runner and plugins for running JUnit tests with pseudo-randomness
Java Faker 4,714 4 months ago Port of Ruby's fake data generator
Mockneat 527 over 1 year ago Another fake data generator
ArchUnit 3,188 6 days ago Test library for specifying and asserting architecture rules
Apache JMeter Functional testing and performance measurements
Arquillian Integration and functional testing platform for Java EE containers
Citrus Integration testing framework that focuses on both client- and server-side messaging
Gatling Load testing tool designed for ease of use, maintainability and high performance
JUnit Common testing framework
jqwik Engine for property-based testing built on JUnit 5
Pact JVM 1,078 9 days ago Consumer-driven contract testing
PIT Fast mutation-testing framework for evaluating fault-detection abilities of existing JUnit or TestNG test suites
AssertJ Fluent assertions that improve readability
Hamcrest Matchers that can be combined to create flexible expressions of intent
JSONAssert Simplifies testing JSON strings
JsonUnit 884 4 days ago Library that simplifies JSON comparison in tests
Truth Google's fluent assertion and proposition framework
XMLUnit 297 25 days ago Simplifies testing for XML output
ConsoleCaptor 30 4 months ago Captures console output for unit testing purposes
junit-dataprovider 245 almost 2 years ago TestNG-like data provider/runner for JUnit
LogCaptor 364 5 days ago Captures log entries for unit testing purposes
log-capture 12 5 months ago Captures log entries and provides assertions for unit and integration testing
Mutability Detector 240 12 months ago Reports whether instances of a given class are immutable
pojo-tester Automatically performs tests on basic POJO methods. (LGPL-3.0-only)
raml-tester 71 over 5 years ago Tests if a request/response matches a given RAML definition
Selfie 50 4 days ago Snapshot testing (inline and on disk)
TestContainers 7,986 4 days ago Provides throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container
JMockit Integration testing, API mocking and faking, and code coverage
Mockito 14,824 4 days ago Mocking framework that lets you write tests with a clean and simple API
MockServer Allows mocking of systems integrated with HTTPS
Moco 4,363 2 months ago Concise web services for stubs and mocks
PowerMock 4,157 9 months ago Mocks static methods, constructors, final classes and methods, private methods, and removal of static initializers
WireMock Stubs and mocks web services
EasyMock 820 5 days ago EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing

Awesome Java / Projects / Utility

Arthas 35,464 10 days ago Allows to troubleshoot production issues for applications without modifying code or restarting servers
bucket4j 2,286 19 days ago Rate limiting library based on token-bucket algorithm
cactoos 736 10 days ago Collection of object-oriented primitives
Chocotea 40 over 1 year ago Generates postman collection, environment and integration tests from java code
CRaSH Provides a shell into a JVM that's running CRaSH. Used by Spring Boot and others. (LGPL-2.1-or-later)
Dex 1,321 over 5 years ago Java/JavaFX tool capable of powerful ETL and data visualization
dregex 45 10 days ago Regular expression engine that uses deterministic finite automata. It supports some Perl-style features and yet retains linear matching time, and also offers set operations
Embulk 1,748 11 days ago Bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services
fswatch 29 4 days ago Micro library to watch for directory file system changes, simplifying java.nio.file.WatchService
Gephi 5,880 27 days ago Cross-platform for visualizing and manipulating large graph networks. (GPL-3.0-only)
Guava 50,070 4 days ago 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)
Java Diff Utils Utilities for text or data comparison and patching
JavaVerbalExpressions 2,621 4 days ago Library that helps with constructing difficult regular expressions
JGit Lightweight, pure Java library implementing the Git version control system
JKScope 13 7 months ago Java scope functions inspired by Kotlin
minio-java 1,100 about 2 months ago Provides simple APIs to access any Amazon S3-compatible object storage server
Protégé Provides an ontology editor and a framework to build knowledge-based systems
Semver4j 72 4 days ago Lightweight library that helps you handling semantic versioning with different modes
Underscore-java 530 4 days ago Port of Underscore.js functions

Awesome Java / Projects / Version Managers

jabba 2,987 7 months ago Java Version Manager inspired by nvm. Supports macOS, Linux and Windows
jenv 5,789 4 months ago Java Version Manager inspired by rbenv. Can configure globally or per project. Tested on Debian and macOS
SDKMan 6,078 about 2 months ago Java Version Manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows

Awesome Java / Projects / Web Crawling

Apache Nutch Highly extensible, highly scalable web crawler for production environments
Crawler4j 4,538 almost 3 years ago Simple and lightweight web crawler
jsoup Scrapes, parses, manipulates and cleans HTML
StormCrawler SDK for building low-latency and scalable web crawlers
webmagic 11,387 about 2 months ago Scalable crawler with downloading, url management, content extraction and persistent

Awesome Java / Projects / Web Frameworks

ActiveJ Lightweight asynchronous framework built from the ground up for developing high-performance web applications
Apache Tapestry Component-oriented framework for creating dynamic, robust, highly scalable web applications
Apache Wicket Component-based web application framework similar to Tapestry, with a stateful GUI
Blade 5,833 2 months ago Lightweight, modular framework that aims to be elegant and simple
Bootique Minimally opinionated framework for runnable apps
Firefly Asynchronous framework for rapid development of high-performance web application
Javalin Microframework for web applications
Jooby Scalable, fast and modular micro-framework that offers multiple programming models
Ninja Full-stack web framework
Pippo Small, highly modularized, Sinatra-like framework
Play Built on Akka, it provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications in Java and Scala
PrimeFaces JSF framework with both free and commercial/support versions and frontend components
Ratpack Set of libraries that facilitate fast, efficient, evolvable and well-tested HTTP applications
Takes 807 5 days ago Opinionated web framework which is built around the concepts of True Object-Oriented Programming and immutability
Vaadin Full-stack open-source Java framework that simplifies web app development. Build complex, interactive applications with Java alone, and enhance with TypeScript and React components, without needing deep JavaScript, CSS, or HTML expertise

Awesome Java / Projects / Workflow Orchestration Engines

Cadence Stateful code platform from Uber
flowable 7,853 4 days ago Compact and efficient workflow and business process management platform
Temporal Microservice orchestration platform, forked from Cadence but gRPC based
Awesome Annotation Processing 477 4 months ago
Awesome Graal 355 over 1 year ago
Awesome Gradle Plugins 453 12 months ago
AwesomeJavaFX 3,120 2 months ago
Awesome JVM 2,063 about 2 years ago
Awesome Microservices 13,239 about 2 months ago
Awesome REST 3,621 about 1 month ago
Awesome Selenium 1,011 about 1 year ago
Awesome Hybris 33 4 months ago
ciandcd 1,858 6 months ago
Useful Java Links 5,823 12 months ago
Java Concurrency Checklist 1,281 almost 4 years ago
Java Developer Roadmap 3,922 10 months ago

Awesome Java / Resources / Communities

r/java Subreddit for the Java community
Stack Overflow Question/answer platform

Awesome Java / Resources / Frontends

java.libhunt.com

Awesome Java / Resources / Influential Books

Core Java Volume I--Fundamentals
Core Java, Volume II--Advanced Features
Effective Java (3rd Edition)
Head First Java (3rd Edition)
Java Concurrency in Practice
The Well-Grounded Java Developer (2nd Edition)
Thinking in Java

Awesome Java / Resources / Podcasts and Screencasts

140 Second Ducklings Short videos on Twitter explaining Java debugging in depth
A Bootiful Podcast
Foojay Podcast
Inside Java (Official)
Java Off Heap
The Java Posse Discontinued as of 02/2015

Awesome Java / Resources / People

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
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 EE Official Java EE Twitter account
Java Magazine Official Java Magazine account
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
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

Awesome Java / Resources / Websites

Baeldung
Dzone
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

Backlinks from these awesome lists: