[[
wikihub
]]
Search
⌘K
Explore
People
For Agents
Sign in
Explore
People
For Agents
Sign in
@harrisonqian / Awesome / wiki/programming-languages/java.md
Suggest edit
Cancel
Submit suggestion
Title
Name
Note
--- visibility: public --- # Java **repo:** [akullpp/awesome-java](https://github.com/akullpp/awesome-java) **category:** [[programming-languages|Programming Languages]] **related:** [[kotlin|Kotlin]] · [[android|Android]] · [[spring-boot|Spring Boot]] --- # Awesome Java [](https://awesome.re) A curated list of awesome Java frameworks, libraries and software. [Please find a different kind of layout here](https://github.com/akullpp/awesome-java/tree/test). We are evaluating to make this the default, you can provide feedback here in [#1171](https://github.com/akullpp/awesome-java/issues/1171). ## Contents - [Awesome Java](#[awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome)-java-) - [Contents](#contents) - [Projects](#projects) - [Architecture](#architecture) - [Artificial Intelligence](#artificial-intelligence) - [Bean Mapping](#bean-mapping) - [Build](#build) - [Bytecode Manipulation](#bytecode-manipulation) - [Caching](#caching) - [CLI](#cli) - [Argument Parsing](#argument-parsing) - [Text-Based User Interfaces](#text-based-user-interfaces) - [Cloud](#cloud) - [Code Analysis](#code-analysis) - [Code Coverage](#code-coverage) - [Code Generators](#code-generators) - [Compiler-compiler](#compiler-compiler) - [Computer Vision](#computer-vision) - [Configuration](#configuration) - [Constraint Satisfaction Problem Solver](#constraint-satisfaction-problem-solver) - [CSV](#csv) - [Data Structures](#data-structures) - [Database](#database) - [Date and Time](#date-and-time) - [Decentralization](#decentralization) - [Dependency Injection](#dependency-injection) - [Development](#development) - [Distributed Applications](#distributed-applications) - [Distributed Transactions](#distributed-transactions) - [Distribution](#distribution) - [Document Processing](#document-processing) - [Financial](#financial) - [Formal Verification](#formal-verification) - [Functional Programming](#functional-programming) - [Game Development](#game-development) - [Geospatial](#geospatial) - [GUI](#gui) - [High Performance](#high-performance) - [HTTP Clients](#http-clients) - [Hypermedia Types](#hypermedia-types) - [IDE](#ide) - [Imagery](#imagery) - [Introspection](#introspection) - [Job Scheduling](#job-scheduling) - [JSON](#json) - [JVM and JDK](#jvm-and-jdk) - [Logging](#logging) - [Machine Learning](#machine-learning) - [Messaging](#messaging) - [Microservice](#microservice) - [Miscellaneous](#miscellaneous) - [Mobile Development](#mobile-development) - [Monitoring](#monitoring) - [Native](#native) - [Natural Language Processing](#natural-language-processing) - [Networking](#networking) - [ORM](#orm) - [PaaS](#paas) - [Pathfinding](#pathfinding) - [PDF](#pdf) - [Performance analysis](#performance-analysis) - [Platform](#platform) - [Apache Commons](#apache-commons) - [Other](#other) - [Processes](#processes) - [Reactive libraries](#reactive-libraries) - [REST Frameworks](#[rest](/@harrisonqian/awesome/wiki/miscellaneous/rest)-frameworks) - [Science](#science) - [Search](#search) - [Security](#security) - [Serialization](#serialization) - [Server](#server) - [Template Engine](#template-engine) - [Testing](#testing) - [Asynchronous](#asynchronous) - [BDD](#bdd) - [Fixtures](#fixtures) - [Frameworks](#frameworks) - [Matchers](#matchers) - [Miscellaneous](#miscellaneous-1) - [Mocking](#mocking) - [Utility](#utility) - [Version Managers](#version-managers) - [Web Crawling](#web-crawling) - [Web Frameworks](#web-frameworks) - [Workflow Orchestration Engines](#workflow-orchestration-engines) - [Resources](#resources) - [Related [Awesome](/@harrisonqian/awesome/wiki/miscellaneous/awesome) Lists](#related-awesome-lists) - [Communities](#communities) - [Frontends](#frontends) - [Influential Books](#influential-books) - [Podcasts and Screencasts](#[podcasts](/@harrisonqian/awesome/wiki/entertainment/podcasts)-and-screencasts) - [People](#people) - [Socials](#socials) - [Websites](#websites) - [Contributing](#contributing) ## Projects ### Architecture _Frameworks and libraries that help implementing and verifying design and architecture concepts._ - [ArchUnit](https://github.com/TNG/ArchUnit) - Test library for specifying and asserting architecture rules. - [jMolecules](https://github.com/xmolecules/jmolecules) - Annotations and interfaces to express design and architecture concepts in code. ### Artificial Intelligence _Frameworks that help you to leverage LLMs and AI._ - [LangChain4j](https://github.com/langchain4j/langchain4j) - Simplifies [integration](/@harrisonqian/awesome/wiki/platforms/integration) of LLMs with unified APIs and a comprehensive toolbox. - [MCP Java SDK](https://github.com/modelcontextprotocol/java-sdk) - Enables applications to interact with AI models and tools through a standardized interface (i.e. Model Context Protocol), supporting both synchronous and asynchronous communication patterns. - [simple-openai](https://github.com/sashirestela/simple-openai) - Library to use the OpenAI API (and compatible ones) in the simplest possible way. - [Spring AI](https://spring.io/projects/spring-ai) - Application framework for AI engineering for Spring. ### Bean Mapping _Frameworks that ease bean mapping._ - [dOOv](https://github.com/doov-io/doov) - 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](https://github.com/jmapper-framework/jmapper-core) - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration. - [MapStruct](https://github.com/mapstruct/mapstruct) - Code generator that simplifies mappings between different bean types, based on a convention-over-configuration approach. - [ModelMapper](https://github.com/modelmapper/modelmapper) - Intelligent object mapping library that automatically maps objects to each other. - [Orika](https://github.com/orika-mapper/orika) - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another. - [reMap](https://github.com/remondis-it/remap) - Lambda and method handle-based mapping which requires code and not annotations if objects have different names. - [Selma](https://github.com/xebia-france/selma) - Annotation processor-based bean mapper. ### Build _Tools that handle the build cycle and dependencies of an application._ - [Apache Maven](https://maven.apache.org) - 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](https://bazel.build) - Tool from Google that builds code quickly and reliably. - [Buck2](https://github.com/facebook/buck2) - Encourages the creation of small, reusable modules consisting of code and resources. - [Gradle](https://gradle.org) - Incremental builds programmed via [Groovy](/@harrisonqian/awesome/wiki/programming-languages/groovy) instead of declaring XML. Works well with Maven's dependency management. ### Bytecode Manipulation _Libraries to manipulate bytecode programmatically._ - [ASM](https://asm.ow2.io) - All-purpose, low-level bytecode manipulation and analysis. - [Byte Buddy](https://bytebuddy.net) - Further simplifies bytecode generation with a fluent API. - [bytecode-viewer](https://github.com/Konloch/bytecode-viewer) - Java 8 Jar & [Android](/@harrisonqian/awesome/wiki/platforms/android) APK reverse engineering suite. (GPL-3.0-only) - [Byteman](https://byteman.jboss.org) - Manipulate bytecode at runtime via DSL (rules); mainly for [testing](/@harrisonqian/awesome/wiki/testing/testing)/troubleshooting. (LGPL-2.1-or-later) - [cglib](https://github.com/cglib/cglib) - Bytecode generation library. - [Javassist](https://github.com/jboss-javassist/javassist) - Tries to simplify bytecode editing. - [Maker](https://github.com/cojen/maker) - Provides low level bytecode generation. - [Mixin](https://github.com/SpongePowered/Mixin) - Manipulate bytecode at runtime using real Java code. - [Perses](https://github.com/nicolasmanic/perses) - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering. - [Recaf](https://www.coley.software/Recaf/) - JVM reverse engineering toolkit, essentially an IDE for Java bytecode. ### Caching _Libraries that provide caching facilities._ - [cache2k](https://cache2k.org) - In-memory high performance caching library. - [Caffeine](https://github.com/ben-manes/caffeine) - High-performance, near-optimal caching library. - [Ehcache](http://www.ehcache.org) - Distributed general-purpose cache. - [Infinispan](https://infinispan.org) - Highly concurrent key/value datastore used for caching. ### CLI _Libraries for everything related to the CLI._ #### Argument Parsing _Libraries to assist with parsing command line arguments._ - [Airline](https://rvesse.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/airline/) - Annotation-based framework for parsing Git-like command-line arguments. - [JCommander](http://jcommander.org) - Command-line argument-parsing framework with custom types and validation via implementing interfaces. - [jbock](https://github.com/jbock-java/jbock) - Reflectionless command line parser. - [JLine](https://github.com/jline/jline3) - Includes features from modern shells like completion or history. - [picocli](https://picocli.info) - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong [typing](/@harrisonqian/awesome/wiki/programming-languages/typing) for both options and positional args. #### Text-Based User Interfaces _Libraries that provide TUI frameworks, or building blocks related functions._ - [Jansi](https://github.com/fusesource/jansi) - ANSI escape codes to format console output. - [Jexer](https://gitlab.com/AutumnMeowMeow/jexer) - Advanced console (and Swing) text user interface (TUI) library, with mouse-draggable [windows](/@harrisonqian/awesome/wiki/platforms/windows), built-in terminal window manager, and sixel image support. Looks like [Turbo Vision](https://en.wikipedia.org/wiki/Turbo_Vision). - [Text-IO](https://github.com/beryx/text-io) - Aids the creation of full console-based applications. - [Lanterna](https://github.com/mabe02/lanterna) - Easy console text-GUI library, similar to curses. (LGPL-3.0-only) ### Cloud _Libraries to integrate or use cloud-specific features._ - [AWS SDK for Java](https://github.com/aws/aws-sdk-java) - Provides Java APIs for interacting with [Amazon Web Services](/@harrisonqian/awesome/wiki/platforms/amazon-web-services). - [Google Cloud Client Libraries](https://github.com/googleapis/google-cloud-java) - Client libraries for accessing [Google Cloud](/@harrisonqian/awesome/wiki/platforms/google-cloud) services from Java applications. ### Code Analysis _Tools that provide metrics and quality measurements._ - [Checkstyle](https://github.com/checkstyle/checkstyle) - Static analysis of coding conventions and [standards](/@harrisonqian/awesome/wiki/miscellaneous/standards). (LGPL-2.1-or-later) - [Error Prone](https://github.com/google/error-prone) - Catches common programming mistakes as compile-time errors. - [Error Prone Support](https://github.com/PicnicSupermarket/error-prone-support) - Error Prone extensions: extra bug checkers and a large battery of Refaster templates. - [Infer](https://github.com/facebook/infer) - Modern static analysis tool for verifying the correctness of code. - [jQAssistant](https://jqassistant.org) - Static code analysis with [Neo4J](/@harrisonqian/awesome/wiki/databases/neo4j)-based query language. (GPL-3.0-only) - [NullAway](https://github.com/uber/NullAway) - Eliminates NullPointerExceptions with low build-time overhead. - [PMD](https://github.com/pmd/pmd) - Source code analysis for finding bad coding practices. - [p3c](https://github.com/alibaba/p3c) - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse. - [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) - Identifies and prioritizes God Classes and Highly Coupled classes. - [SonarJava](https://github.com/SonarSource/sonar-java) - Static analyzer for SonarQube & SonarLint. (LGPL-3.0-only) - [Spoon](https://github.com/INRIA/spoon) - Library for analyzing and transforming Java source code. - [Spotbugs](https://github.com/spotbugs/spotbugs) - Static analysis of bytecode to find potential bugs. (LGPL-2.1-only) - [ToolsHref](https://toolshref.com) - Online Java code analyzer and [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json)-to-Mermaid visualization tool. ### Code Coverage _Frameworks and tools that enable code coverage metrics collection for test suites._ - [Clover](https://www.atlassian.com/software/clover) - Relies on source-code instrumentation instead of bytecode instrumentation. - [Cobertura](https://cobertura.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/cobertura/) - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only) - [JaCoCo](https://www.eclemma.org/jacoco/) - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation. ### Code Generators _Tools that generate patterns for repetitive code in order to reduce verbosity and error-proneness._ - [ADT4J](https://github.com/sviperll/adt4j) - JSR-269 code generator for algebraic data types. - [Auto](https://github.com/google/auto) - Generates factory, service, and value classes. - [Avaje Http Server](https://avaje.io/http/) - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE. - [Bootify ![c]](https://bootify.io) - Browser-based Spring Boot app generation with JPA model and [REST](/@harrisonqian/awesome/wiki/miscellaneous/rest) API. - [EasyEntityToDTO](https://github.com/Marcel091004/EasyEntityToDTO) - Annotation processor for automatic DTO and Mapper generation with zero boilerplate. - [FreeBuilder](https://github.com/inferred/FreeBuilder) - Automatically generates the Builder pattern. - [Geci](https://github.com/verhas/javageci) - Discovers files that need generated code, updates automatically and writes to the source with a convenient API. - [Immutables](https://immutables.[github](/@harrisonqian/awesome/wiki/development-environment/github).io) - Annotation processors to generate simple, safe and consistent value objects. - [JavaPoet](https://github.com/square/javapoet) - API to generate source files. - [JHipster](https://github.com/jhipster/generator-jhipster) - Yeoman source code generator for Spring Boot and AngularJS. - [Joda-Beans](https://www.joda.org/joda-beans/) - Small framework that adds queryable properties to Java, enhancing JavaBeans. - [JPA Buddy ![c]](https://www.jpa-buddy.com) - 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. - [JSpecify Package-Info Generator](https://github.com/bcaillard/jspecify-packageinfo-generator) - 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. - [Lombok](https://projectlombok.org) - Code generator that aims to reduce verbosity. - [Record-Builder](https://github.com/Randgalt/record-builder) - Companion builder class, withers and templates for Java records. - [Telosys](https://www.telosys.org/) - Simple and light code generator available as an Eclipse Plugin and also as a CLI. ### Compiler-compiler _Frameworks that help to create parsers, interpreters or compilers._ - [ANTLR](https://www.antlr.org) - Complex full-featured framework for top-down parsing. - [JavaCC](https://javacc.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/javacc/) - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications. - [JFlex](https://jflex.de) - Lexical analyzer generator. ### Computer Vision _Libraries which seek to gain high level information from images and videos._ - [BoofCV](https://boofcv.org) - Library for image processing, camera calibration, tracking, SFM, MVS, 3D vision, [QR Code](/@harrisonqian/awesome/wiki/miscellaneous/qr-code) and much more. - [ImageJ](https://imagej.net/ImageJ) - Medical image processing application with an API. - [JavaCV](https://github.com/bytedeco/javacv) - Java interface to OpenCV, [FFmpeg](/@harrisonqian/awesome/wiki/media/ffmpeg), and much more. ### Configuration _Libraries that provide external configuration._ - [avaje config](https://avaje.io/config/) - Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners. - [centraldogma](https://github.com/line/centraldogma) - Highly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2. - [config](https://github.com/lightbend/config) - Configuration library supporting Java properties, [JSON](/@harrisonqian/awesome/wiki/miscellaneous/json) or its human optimized superset HOCON. - [Configurate](https://github.com/SpongePowered/Configurate) - Configuration library with support for various configuration formats and transformations. - [Curator Framework](https://curator.apache.org/) - High-level API for Apache ZooKeeper. - [dotenv](https://github.com/shyiko/dotenv) - Twelve-factor configuration library which uses environment-specific files. - [Externalized Properties](https://github.com/joel-jeremy/externalized-properties) - 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](https://github.com/gestalt-config/gestalt) - 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](http://ini4j.sourceforge.net) - Provides an API for handling [Windows](/@harrisonqian/awesome/wiki/platforms/windows)' INI files. - [KAConf](https://github.com/mariomac/kaconf) - Annotation-based configuration system for Java and [Kotlin](/@harrisonqian/awesome/wiki/programming-languages/kotlin). - [microconfig](https://microconfig.io) - Configuration system designed for [microservices](/@harrisonqian/awesome/wiki/miscellaneous/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](https://github.com/lviggiano/owner) - Reduces boilerplate of properties. ### Constraint Satisfaction Problem Solver _Libraries that help with implementing optimization and satisfiability problems._ - [Choco](https://choco-solver.org) - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques. - [JaCoP](https://github.com/radsz/jacop) - Includes an interface for the FlatZinc language, enabling it to execute MiniZinc models. (AGPL-3.0) - [OptaPlanner](https://www.optaplanner.org) - Business planning and resource scheduling optimization solver. - [Timefold](https://timefold.ai/docs) - Flexible solver with Spring/Quarkus support and quickstarts for the Vehicle Routing Problem, Maintenance Scheduling, Employee Shift Scheduling and much more. ### CSV _Frameworks and libraries that simplify reading/writing CSV data._ - [FastCSV](https://github.com/osiegmar/FastCSV) - Performance-optimized, dependency-free and RFC 4180 compliant. - [jackson-dataformat-csv](https://github.com/FasterXML/jackson-dataformat-csv) - Jackson extension for reading and writing CSV. - [opencsv](http://opencsv.sourceforge.net) - Simple CSV parser. - [Super CSV](https://super-csv.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/super-csv/) - Powerful CSV parser with support for Dozer, Joda-Time and Java 8. - [uniVocity-parsers](https://github.com/uniVocity/univocity-parsers) - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records. ### Data Structures _Efficient and specific data structures._ - [Apache Avro](https://avro.apache.org) - Data interchange format with dynamic [typing](/@harrisonqian/awesome/wiki/programming-languages/typing), untagged data, and absence of manually assigned IDs. - [Apache Orc](https://orc.apache.org) - Fast and efficient columnar storage format for [Hadoop](/@harrisonqian/awesome/wiki/big-data/hadoop)-based workloads. - [Apache Parquet](https://parquet.apache.org) - Columnar storage format based on assembly [algorithms](/@harrisonqian/awesome/wiki/theory/algorithms) from Google's paper on Dremel. - [Apache Thrift](https://thrift.apache.org) - Data interchange format that originated at Facebook. - [Big Queue](https://github.com/bulldog2011/bigqueue) - Fast and persistent queue based on memory-mapped files. - [HyperMinHash-java](https://github.com/LiveRamp/HyperMinHash-java) - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space. - [Persistent Collection](https://github.com/hrldcpr/pcollections) - Persistent and immutable analogue of the Java Collections Framework. - [Protobuf](https://github.com/protocolbuffers/protobuf) - Google's data interchange format. - [RoaringBitmap](https://github.com/RoaringBitmap/RoaringBitmap) - Fast and efficient compressed bitmap. - [SBE](https://github.com/real-logic/simple-binary-encoding) - Simple Binary Encoding, one of the fastest message formats around. - [Tape](https://github.com/square/tape) - Lightning-fast, transactional, file-based FIFO. - [Wire](https://github.com/square/wire) - Clean, lightweight protocol buffers. ### Database _Everything that simplifies interactions with the database._ - [Apache Calcite](https://calcite.apache.org) - Dynamic data management framework. It contains many of the pieces that comprise a typical [database](/@harrisonqian/awesome/wiki/databases/database) management system. - [Apache Drill](https://drill.apache.org) - Distributed, schema on-the-fly, ANSI SQL query engine for [Big Data](/@harrisonqian/awesome/wiki/big-data/big-data) exploration. - [Apache Phoenix](https://phoenix.apache.org) - High-performance relational [database](/@harrisonqian/awesome/wiki/databases/database) layer over [HBase](/@harrisonqian/awesome/wiki/databases/hbase) for low-latency applications. - [ArangoDB](https://github.com/arangodb/arangodb-java-driver) - ArangoDB Java driver. - [Chronicle Map](https://github.com/OpenHFT/Chronicle-Map) - Efficient, in-memory (opt. persisted to disk), off-heap key-value store. - [Debezium](https://debezium.io/) - Low latency data [streaming](/@harrisonqian/awesome/wiki/big-data/streaming) platform for change data capture. - [druid](https://druid.apache.org) - High-performance, column-oriented, distributed data store. - [eXist](https://github.com/eXist-db/exist) - NoSQL document [database](/@harrisonqian/awesome/wiki/databases/database) and application platform. (LGPL-2.1-only) - [FlexyPool](https://github.com/vladmihalcea/flexy-pool) - Brings metrics and failover strategies to the most common connection pooling solutions. - [Flyway](https://flywaydb.org) - Simple [database](/@harrisonqian/awesome/wiki/databases/database) migration tool. - [H2](https://h2database.com) - Small SQL [database](/@harrisonqian/awesome/wiki/databases/database) notable for its in-memory functionality. - [HikariCP](https://github.com/brettwooldridge/HikariCP) - High-performance JDBC connection pool. - [HSQLDB](https://hsqldb.org/) - HyperSQL 100% Java [database](/@harrisonqian/awesome/wiki/databases/database). - [JDBI](http://jdbi.org) - Convenient abstraction of JDBC. - [Jedis](https://github.com/xetorthio/jedis) - Small client for interaction with Redis, with methods for commands. - [Jest](https://github.com/searchbox-io/Jest) - Client for the Elasticsearch [REST](/@harrisonqian/awesome/wiki/miscellaneous/rest) API. - [jetcd](https://github.com/justinsb/jetcd) - Client library for etcd. - [Jinq](https://github.com/my2iu/Jinq) - Typesafe [database](/@harrisonqian/awesome/wiki/databases/database) queries via symbolic execution of Java 8 Lambdas (on top of JPA or jOOQ). - [jOOQ](https://www.jooq.org) - Generates typesafe code based on SQL schema. - [Leaf](https://github.com/Meituan-Dianping/Leaf) - Distributed ID generate service. - [Lettuce](https://lettuce.io/) - Lettuce is a scalable Redis client for building non-blocking Reactive applications. - [Liquibase](http://www.liquibase.org) - [Database](/@harrisonqian/awesome/wiki/databases/database)-independent library for tracking, managing and applying [database](/@harrisonqian/awesome/wiki/databases/database) schema changes. - [MapDB](http://www.mapdb.org) - Embedded [database](/@harrisonqian/awesome/wiki/databases/database) engine that provides concurrent collections backed on disk or in off-heap memory. - [MariaDB4j](https://github.com/vorburger/MariaDB4j) - Launcher for MariaDB that requires no installation or external dependencies. - [Modality](https://github.com/arkanovicz/modality) - Lightweight ORM with [database](/@harrisonqian/awesome/wiki/databases/database) reverse engineering features. - [OpenDJ](https://github.com/OpenIdentityPlatform/OpenDJ) - LDAPv3 compliant directory service, developed for the Java platform, providing a high performance, highly available, and secure store for the identities. - [Querydsl](http://www.querydsl.com) - Typesafe unified queries. - [QueryStream](https://github.com/querystream/querystream) - Build JPA Criteria queries using a Stream-like API. - [QuestDB](https://github.com/questdb/questdb) - High-performance SQL [database](/@harrisonqian/awesome/wiki/databases/database) for time series. Supports [InfluxDB](/@harrisonqian/awesome/wiki/databases/influxdb) line protocol, [PostgreSQL](/@harrisonqian/awesome/wiki/databases/postgresql) wire protocol, and [REST](/@harrisonqian/awesome/wiki/miscellaneous/rest). - [Realm](https://github.com/realm/realm-java) - Mobile [database](/@harrisonqian/awesome/wiki/databases/database) to run directly inside phones, tablets or wearables. - [Redisson](https://github.com/redisson/redisson) - Allows for distributed and scalable data structures on top of a Redis server. - [requery](https://github.com/requery/requery) - Modern, lightweight but powerful object mapping and SQL generator. Easily map to or create databases, or perform queries and updates from any Java-using platform. - [Speedment](https://github.com/speedment/speedment) - [Database](/@harrisonqian/awesome/wiki/databases/database) access library that utilizes Java 8's Stream API for querying. - [Spring Data Dynamic Query](https://github.com/tdilber/spring-data-dynamic-query) - Unified dynamic query interface for Spring Data JPA, [MongoDB](/@harrisonqian/awesome/wiki/databases/mongodb), and Elasticsearch, enabling advanced JOIN(s), OR logic, scoped conditions, powerful projections and advanced features with zero boilerplate. - [Spring Data JPA [MongoDB](/@harrisonqian/awesome/wiki/databases/mongodb) Expressions](https://github.com/mhewedy/spring-data-jpa-mongodb-expressions) - Allows you to use [MongoDB](/@harrisonqian/awesome/wiki/databases/mongodb) query language to query your relational [database](/@harrisonqian/awesome/wiki/databases/database). - [Trino](https://trino.io) - Distributed SQL query engine for [big data](/@harrisonqian/awesome/wiki/big-data/big-data). - [Vibur DBCP](https://www.vibur.org) - JDBC connection pool library with advanced performance monitoring capabilities. - [Xodus](https://github.com/JetBrains/xodus) - Highly concurrent transactional schema-[less](/@harrisonqian/awesome/wiki/front-end-development/less) and ACID-compliant embedded [database](/@harrisonqian/awesome/wiki/databases/database). - [CosId](https://github.com/Ahoo-Wang/CosId) - Universal, flexible, high-performance distributed ID generator. - [Apache ShardingSphere](https://github.com/apache/shardingsphere) - Distributed SQL transaction & query engine that allows for data sharding, scaling, encryption, and more on any [database](/@harrisonqian/awesome/wiki/databases/database). ### Date and Time _Libraries related to handling date and time._ - [iCal4j](https://github.com/ical4j/ical4j) - Parse and build iCalendar [RFC 5545](https://tools.ietf.org/html/rfc5545) data models. - [Jollyday](https://github.com/svendiedrichsen/jollyday) - Determines the holidays for a given year, country/name and eventually state/region. - [ThreeTen-Extra](https://github.com/ThreeTen/threeten-extra) - Additional date-time classes that complement those in JDK 8. - [Time4J](https://github.com/MenoData/Time4J) - Advanced date and time library. (LGPL-2.1-only) ### Decentralization _Libraries that handle decentralization tasks._ - [java-tron](https://github.com/tronprotocol/java-tron) Implementation of the Tron Protocol, whic utilizes blockchains to develop decentralized applications. ### Dependency Injection _Libraries that help to realize the [Inversion of Control](https://en.wikipedia.org/wiki/Inversion_of_control) paradigm._ - [Apache DeltaSpike](https://deltaspike.apache.org) - CDI extension framework. - [Avaje Inject](https://avaje.io/inject/) - Microservice-focused compile-time injection framework without reflection. - [Dagger](https://dagger.dev/) - Compile-time injection framework without reflection. - [Feather](https://github.com/zsoltherpai/feather) - Ultra-lightweight, JSR-330-compliant dependency injection library. - [Governator](https://github.com/Netflix/governator) - Extensions and utilities that enhance Google Guice. - [Guice](https://github.com/google/guice) - Lightweight and opinionated framework that completes Dagger. - [HK2](https://eclipse-ee4j.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/glassfish-hk2/) - Lightweight and dynamic dependency injection framework. - [JayWire](https://github.com/vanillasource/jaywire) - Lightweight dependency injection framework. (LGPL-3.0-only) ### Development _Augmentation of the development process at a fundamental level._ - [AspectJ](https://www.eclipse.org/aspectj/) - Seamless aspect-oriented programming extension. - [DCEVM](https://dcevm.[github](/@harrisonqian/awesome/wiki/development-environment/github).io) - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only) - [Faux Pas](https://github.com/zalando/faux-pas) - 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](https://github.com/HotswapProjects/HotswapAgent) - Unlimited runtime class and resource redefinition. (GPL-2.0-only) - [JavaParser](https://github.com/javaparser/javaparser) - Parse, modify and generate Java code. - [JavaSymbolSolver](https://github.com/javaparser/javasymbolsolver) - Symbol solver. - [Manifold](https://github.com/manifold-systems/manifold) - Re-energizes Java with powerful features like type-safe metaprogramming, structural [typing](/@harrisonqian/awesome/wiki/programming-languages/typing) and extension methods. - [NoException](https://noexception.machinezoo.com) - Allows checked exceptions in functional interfaces and converts exceptions to Optional return. - [SneakyThrow](https://github.com/rainerhahnekamp/sneakythrow) - Ignores checked exceptions without bytecode manipulation. Can also be used inside Java 8 stream operations. - [Tail](https://nrktkt.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/tail/) - Enable infinite recursion using tail call optimization. ### Distributed Applications _Libraries and frameworks for writing distributed and fault-tolerant applications._ - [Apache Geode](https://geode.apache.org) - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery. - [Apache Storm](https://storm.apache.org) - Realtime computation system. - [Apache ZooKeeper](https://zookeeper.apache.org) - Coordination service with distributed configuration, synchronization, and [naming](/@harrisonqian/awesome/wiki/miscellaneous/naming) registry for large distributed systems. - [Atomix](https://atomix.io) - Fault-tolerant distributed coordination framework. - [Axon](https://axoniq.io) - Framework for creating CQRS applications. - [Dropwizard Circuit Breaker](https://github.com/mtakaki/dropwizard-circuitbreaker) - Circuit breaker design pattern for [Dropwizard](/@harrisonqian/awesome/wiki/back-end-development/dropwizard). (GPL-2.0-only) - [Failsafe](https://github.com/jhalterman/failsafe) - Simple failure handling with retries and circuit breakers. - [Hazelcast](https://github.com/hazelcast/hazelcast) - Highly scalable in-memory datagrid with a free open-source version. - [JGroups](http://www.jgroups.org) - Toolkit for reliable messaging and cluster creation. - [Quasar](http://docs.paralleluniverse.co/quasar/) - Lightweight threads and actors for the JVM. - [resilience4j](https://github.com/resilience4j/resilience4j) - Functional fault tolerance library. - [OpenIG](https://github.com/OpenIdentityPlatform/OpenIG) - High-performance reverse proxy server with specialized session management and credential replay functionality. - [ScaleCube Services](https://github.com/scalecube/scalecube-services) - Embeddable Cluster-Membership library based on SWIM and gossip protocol. - [Zuul](https://github.com/Netflix/zuul) - Gateway service that provides dynamic routing, monitoring, resiliency, [security](/@harrisonqian/awesome/wiki/security/security), and more. ### Distributed Transactions _Distributed transactions provide a mechanism for ensuring consistency of data updates in the presence of concurrent access and partial failures._ - [Atomikos](https://www.atomikos.com) - Provides transactions for [REST](/@harrisonqian/awesome/wiki/miscellaneous/rest), SOA and [microservices](/@harrisonqian/awesome/wiki/miscellaneous/microservices) with support for JTA and XA. - [Bitronix](https://github.com/bitronix/btm) - Simple but complete implementation of the JTA 1.1 API. - [Narayana](https://narayana.io) - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other [standards](/@harrisonqian/awesome/wiki/miscellaneous/standards). (LGPL-2.1-only) - [Seata](https://github.com/seata/seata) - Delivers high performance and easy to use distributed transaction services under a [microservices](/@harrisonqian/awesome/wiki/miscellaneous/microservices) architecture. ### Distribution _Tools that handle the distribution of applications in native formats._ - [Artipie](https://github.com/artipie/artipie) - Binary artifact management toolkit which hosts them on the file system or S3. - [Boxfuse ![c]](https://boxfuse.com) - Deployment of JVM applications to AWS using the principles of immutable infrastructure. - [Capsule](https://github.com/puniverse/capsule) - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "[Docker](/@harrisonqian/awesome/wiki/back-end-development/docker) for Java" that supports JVM-optimized [containers](/@harrisonqian/awesome/wiki/platforms/containers). - [Central Repository](https://search.maven.org) - 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 ![c]](https://cloudsmith.io) - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier. - [Getdown](https://github.com/threerings/getdown) - System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start. - [IzPack](http://izpack.org) - Setup authoring tool for [cross-platform](/@harrisonqian/awesome/wiki/platforms/cross-platform) deployments. - [JavaPackager](https://github.com/fvarrui/JavaPackager) - Maven and Gradle plugin which provides an easy way to package Java applications in native [Windows](/@harrisonqian/awesome/wiki/platforms/windows), macOS or GNU/[Linux](/@harrisonqian/awesome/wiki/platforms/linux) executables, and generate installers for them. - [jDeploy](https://www.jdeploy.com) - Deploy desktop [apps](/@harrisonqian/awesome/wiki/platforms/apps) as native Mac, [Windows](/@harrisonqian/awesome/wiki/platforms/windows) or [Linux](/@harrisonqian/awesome/wiki/platforms/linux) bundles. - [jlink.online](https://github.com/AdoptOpenJDK/jlink.online) - Builds optimized runtimes over HTTP. - [Nexus ![c]](https://www.sonatype.com) - Binary management with proxy and caching capabilities. - [packr](https://github.com/libgdx/packr) - Packs JARs, assets and the JVM for native distribution on [Windows](/@harrisonqian/awesome/wiki/platforms/windows), [Linux](/@harrisonqian/awesome/wiki/platforms/linux) and macOS. - [really-executable-jars-maven-plugin](https://github.com/brianm/really-executable-jars-maven-plugin) - Maven plugin for making self-executing JARs. ### Document Processing _Libraries that assist with processing office document formats._ - [Apache POI](https://poi.apache.org) - Supports OOXML (XLSX, DOCX, PPTX) as well as OLE2 (XLS, DOC or PPT). - [documents4j](https://documents4j.com/#/) - API for document format conversion using third-party converters such as MS Word. - [docx4j](https://www.docx4java.org/trac/docx4j) - Create and manipulate Microsoft Open XML files. - [fastexcel](https://github.com/dhatim/fastexcel) - High performance library to read and write large Excel (XLSX) worksheets. - [zerocell](https://github.com/creditdatamw/zerocell) - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead. ### Financial _Libraries related to the financial domain._ - [Cassandre](https://github.com/cassandre-tech/cassandre-trading-bot) - Trading bot framework. - [Parity](https://github.com/paritytrading/parity) - Platform for trading venues. - [Philadelphia](https://github.com/paritytrading/philadelphia) - Low-latency financial information exchange. - [Square](https://github.com/square/connect-java-sdk) - [Integration](/@harrisonqian/awesome/wiki/platforms/integration) with the Square API. - [Stripe](https://github.com/stripe/stripe-java) - [Integration](/@harrisonqian/awesome/wiki/platforms/integration) with the Stripe API. - [ta4j](https://github.com/ta4j/ta4j) - Library for technical analysis. ### Formal Verification _Formal-methods tools: proof assistants, model checking, symbolic execution, etc._ - [CATG](https://github.com/ksen007/janala2) - Concolic unit [testing](/@harrisonqian/awesome/wiki/testing/testing) engine. Automatically generates unit tests using formal methods. - [Checker Framework](https://checkerframework.org) - Pluggable type systems. Includes nullness types, physical units, immutability types and more. (GPL-2.0-only WITH Classpath-exception-2.0) - [Daikon](https://plse.cs.washington.edu/daikon/) - Detects likely program invariants and generates JML specs based on those invariants. - [Java Path Finder (JPF)](https://github.com/javapathfinder/jpf-core) - JVM formal verification tool containing a model checker and more. Created by NASA. - [JMLOK 2.0](https://massoni.computacao.ufcg.edu.br/home/jmlok) - 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](https://www.key-project.org) - 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](http://www.openjml.org) - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.0-only) ### Functional Programming _Libraries that facilitate functional programming._ - [Cyclops](https://github.com/aol/cyclops) - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more. - [derive4j](https://github.com/derive4j/derive4j) - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only) - [Fugue](https://bitbucket.org/atlassian/fugue) - Functional extensions to Guava. - [Functional Java](http://www.functionaljava.org) - Implements numerous basic and advanced programming abstractions that assist composition-oriented development. - [jOOλ](https://github.com/jOOQ/jOOL) - 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](https://github.com/jhspetersson/packrat) - Gatherers library for Java Stream API. Gatherers can enhance streams with custom intermediate operations. - [protonpack](https://github.com/poetix/protonpack) - Collection of stream utilities. - [StreamEx](https://github.com/amaembo/streamex) - Enhances Java 8 Streams. - [Vavr](https://www.vavr.io) - Functional component library that provides persistent data types and functional control structures. ### Game Development _Frameworks that support the development of games._ --- *truncated — [full list on GitHub](https://github.com/akullpp/awesome-java)*