An open API service indexing awesome lists of open source software.

awesome-java

A curated list of awesome frameworks, libraries and software for the Java programming language.
https://github.com/akullpp/awesome-java

Last synced: 18 days ago
JSON representation

  • Projects

    • Bean Mapping

      • 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 - Uses byte code manipulation for lightning-fast mapping. Supports annotations and API or XML configuration.
      • Orika - JavaBean-mapping framework that recursively copies (among other capabilities) data from one object to another.
      • Selma - Annotation processor-based bean mapper.
      • 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.
      • Selma - Annotation processor-based bean mapper.
    • Build

      • Buck - Encourages the creation of small, reusable modules consisting of code and resources.
      • Bazel - Tool from Google that builds code quickly and reliably.
      • Gradle - Incremental builds programmed via Groovy instead of declaring XML. Works well with Maven's dependency management.
    • Bytecode Manipulation

      • ASM - All-purpose, low-level bytecode manipulation and analysis.
      • Byte Buddy - Further simplifies bytecode generation with a fluent API.
      • Recaf - JVM reverse engineering toolkit, essentially an IDE for Java bytecode.
      • cglib - Bytecode generation library.
      • Mixin - Manipulate bytecode at runtime using real Java code.
      • Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
      • Perses - Dynamically injects failure/latency at the bytecode level according to principles of chaos engineering.
    • Caching

      • cache2k - In-memory high performance caching library.
      • Ehcache - Distributed general-purpose cache.
      • Infinispan - Highly concurrent key/value datastore used for caching.
    • CLI

      • JCommander - Command-line argument-parsing framework with custom types and validation via implementing interfaces.
      • picocli - ANSI colors and styles in usage help with annotation-based POSIX/GNU/any syntax, subcommands, strong typing for both options and positional args.
      • Airline - Annotation-based framework for parsing Git-like command-line arguments.
      • Text-IO - Aids the creation of full console-based applications.
    • Cloud

      • AWS SDK for Java - Provides Java APIs for interacting with Amazon Web Services.
    • Cluster Management

      • Apache Aurora - Mesos framework for long-running services and cron jobs.
      • Singularity - Mesos framework that makes deployment and operations easy. It supports web services, background workers, scheduled jobs, and one-off tasks.
    • Code Analysis

      • jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
      • p3c - Provides Alibaba's coding guidelines for PMD, IDEA and Eclipse.
      • jQAssistant - Static code analysis with Neo4J-based query language. (GPL-3.0-only)
    • Code Coverage

      • Clover - Relies on source-code instrumentation instead of bytecode instrumentation.
      • JaCoCo - Framework that enables collection of code coverage metrics, using both offline and runtime bytecode instrumentation.
      • Cobertura - Relies on offline (or static) bytecode instrumentation and class loading to collect code coverage metrics. (GPL-2.0-only)
    • Code Generators

      • Avaje Http Server - Generates Lightweight JAX-RS style http servers using Javalin or Helidon (Nima) SE.
      • Bootify ![c - Browser-based Spring Boot app generation with JPA model and REST API.
      • Immutables - Annotation processors to generate simple, safe and consistent value objects.
      • Joda-Beans - Small framework that adds queryable properties to Java, enhancing JavaBeans.
      • JPA Buddy ![c - 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.
      • ADT4J - JSR-269 code generator for algebraic data types.
      • FreeBuilder - Automatically generates the Builder pattern.
      • JavaPoet - API to generate source files.
    • Compiler-compiler

      • JFlex - Lexical analyzer generator.
      • JavaCC - Parser generator that generates top-down parsers. Allows lexical state switching and permits extended BNF specifications.
    • 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.
    • Configuration

      • avaje config - Loads yaml and properties files, supports dynamic configuration, plugins, file-watching and config event listeners.
      • Curator Framework - High-level API for Apache ZooKeeper.
      • ini4j - Provides an API for handling Windows' INI files.
      • 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 - Reduces boilerplate of properties.
      • ini4j - Provides an API for handling Windows' INI files.
    • Constraint Satisfaction Problem Solver

      • Choco - Off-the-shelf constraint satisfaction problem solver that uses constraint programming techniques.
      • 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.
    • CSV

      • opencsv - Simple CSV parser.
      • jackson-dataformat-csv - Jackson extension for reading and writing CSV.
      • Super CSV - Powerful CSV parser with support for Dozer, Joda-Time and Java 8.
      • uniVocity-parsers - One of the fastest and most feature-complete parsers. Also comes with parsers for TSV and fixed-width records.
      • opencsv - Simple CSV parser.
    • 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.
      • Debezium - Low latency data streaming platform for change data capture.
      • druid - High-performance, column-oriented, distributed data store.
      • H2 - Small SQL database notable for its in-memory functionality.
      • JDBI - Convenient abstraction of JDBC.
      • Lettuce - Lettuce is a scalable Redis client for building non-blocking Reactive applications.
      • MapDB - Embedded database engine that provides concurrent collections backed on disk or in off-heap memory.
      • Querydsl - Typesafe unified queries.
      • Trino - Distributed SQL query engine for big data.
      • Vibur DBCP - JDBC connection pool library with advanced performance monitoring capabilities.
      • Querydsl - Typesafe unified queries.
      • Jest - Client for the Elasticsearch REST API.
      • jetcd - Client library for etcd.
      • Leaf - Distributed ID generate service.
      • Speedment - Database access library that utilizes Java 8's Stream API for querying.
      • Trino - Distributed SQL query engine for big data.
      • Lettuce - Lettuce is a scalable Redis client for building non-blocking Reactive applications.
    • 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.
      • Tape - Lightning-fast, transactional, file-based FIFO.
      • Big Queue - Fast and persistent queue based on memory-mapped files.
      • HyperMinHash-java - Probabilistic data structure for computing union, intersection, and set cardinality in loglog space.
      • SBE - Simple Binary Encoding, one of the fastest message formats around.
    • Date and Time

      • Jollyday - Determines the holidays for a given year, country/name and eventually state/region.
    • Decompilation

      • JD-Core - Core Java decompiler library.
      • Procyon - Java decompiler and metadata toolkit.
    • 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 - Ultra-lightweight, JSR-330-compliant dependency injection library.
      • HK2 - Lightweight and dynamic dependency injection framework.
      • JayWire - Lightweight dependency injection framework. (LGPL-3.0-only)
      • HK2 - Lightweight and dynamic dependency injection framework.
    • Development

      • AspectJ - Seamless aspect-oriented programming extension.
      • DCEVM - JVM modification that allows unlimited redefinition of loaded classes at runtime. (GPL-2.0-only)
      • NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
      • JavaSymbolSolver - Symbol solver.
      • Tail - Enable infinite recursion using tail call optimization.
      • NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return.
    • Distributed Applications

      • Apache Geode - In-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.
      • Apache Storm - Realtime computation system.
      • Atomix - Fault-tolerant distributed coordination framework.
      • Axon - Framework for creating CQRS applications.
      • JGroups - Toolkit for reliable messaging and cluster creation.
      • Quasar - Lightweight threads and actors for the JVM.
      • Atomix - Fault-tolerant distributed coordination framework.
      • Failsafe - Simple failure handling with retries and circuit breakers.
      • JGroups - Toolkit for reliable messaging and cluster creation.
    • Distributed Transactions

      • Atomikos - Provides transactions for REST, SOA and microservices with support for JTA and XA.
      • Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
      • Seata - Delivers high performance and easy to use distributed transaction services under a microservices architecture.
      • Narayana - Provides support for traditional ACID and compensation transactions, also complies with JTA, JTS and other standards. (LGPL-2.1-only)
    • Distribution

      • Boxfuse ![c - Deployment of JVM applications to AWS using the principles of immutable infrastructure.
      • 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 ![c - Fully managed package management SaaS with support for Maven/Gradle/SBT with a free tier.
      • jDeploy - Deploy desktop apps as native Mac, Windows or Linux bundles.
      • Nexus ![c - Binary management with proxy and caching capabilities.
      • IzPack - Setup authoring tool for cross-platform deployments.
      • Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
      • JavaPackager - 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.
    • 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.
    • Financial

      • Parity - Platform for trading venues.
      • Square - Integration with the Square API.
    • Formal Verification

      • Daikon - Detects likely program invariants and generates JML specs based on those invariants.
      • 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)
      • CATG - 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)
      • OpenJML - Translates JML specifications into SMT-LIB format and passes the proof problems implied by the program to backend solvers. (GPL-2.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)
    • Functional Programming

      • Functional Java - Implements numerous basic and advanced programming abstractions that assist composition-oriented development.
      • Cyclops - Monad and stream utilities, comprehensions, pattern matching, functional extensions for all JDK collections, future streams, trampolines and much more.
      • derive4j - Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching and morphisms. (GPL-3.0-only)
    • Game Development

      • JBox2D - Port of the renowned C++ 2D physics engine.
      • jMonkeyEngine - Game engine for modern 3D development.
      • 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.
      • FXGL - JavaFX Game Development Framework.
      • JBox2D - Port of the renowned C++ 2D physics engine.
      • Void2D - High-level 2D game engine with built-in physics based on Swing.
      • input4j - Lightweight, cross-platform library for gamepad and joystick input handling.
    • Geospatial

      • Apache SIS - Library for developing geospatial applications.
      • GeoTools - Library that provides tools for geospatial data. (LGPL-2.1-only)
      • H2GIS - Spatial extension of the H2 database. (LGPL-3.0-only)
      • ArcGIS Maps SDK for Java ![c - JavaFX library for adding mapping and GIS functionality to desktop apps.
      • Jgeohash - Library for using the GeoHash algorithm.
    • GUI

      • JavaFX - Successor of Swing.
      • Scene Builder - Visual layout tool for JavaFX applications.
      • SWT - Graphical widget toolkit.
      • JavaFX - Successor of Swing.
    • High Performance

      • HPPC - Primitive collections.
      • Disruptor - Inter-thread messaging library.
      • Koloboke - Carefully designed extension of the Java Collections Framework with primitive specializations and more.
      • Eclipse Collections - Collections framework inspired by Smalltalk.
      • Agrona - Data structures and utility methods that are common in high-performance applications.
      • fastutil - Fast and compact type-specific collections.
    • HTTP Clients

      • Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
      • Retrofit - Typesafe REST client.
      • JQuickCurl - Executes HTTP requests from cURL syntax through annotations, XML configuration and dynamic proxy clients.
    • Hypermedia Types

      • JSON-LD - JSON-LD implementation.
      • Siren4J - Library for the Siren specification.
    • IDE

      • IntelliJ IDEA ![c - 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.
      • SnapCode - Modern IDE for Java running in the browser, focused on education.
    • Introspection

      • 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.
      • 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.
      • Reflections - 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.
    • JSON

      • Avaje Jsonb - Reflection-free Json binding via source code generation with Jackson-like annotations.
      • Genson - Powerful and easy-to-use Java-to-JSON conversion library.
      • Genson - Powerful and easy-to-use Java-to-JSON conversion library.
      • HikariJSON - High-performance JSON parser, 2x faster than Jackson.
      • Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
      • LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
      • fastjson - Very fast processor with no additional dependencies and full data binding.
    • JVM and JDK

      • Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
      • Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
      • Open JDK - Open JDK community home. (GPL-2.0-only WITH Classpath-exception-2.0)
      • ParparVM - VM with non-blocking, concurrent GC for iOS. (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)
      • Open JDK - Open JDK community home. (GPL-2.0-only WITH Classpath-exception-2.0)
      • Which JDK - Overview of common JVMs with pros and cons.
      • SAP Machine - SAP's no-cost, rigorously tested and JCK-verified OpenJDK friendly fork. (GPL-2.0-only WITH Classpath-exception-2.0)
      • OpenJ9 - 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.
    • Logging

      • Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
      • 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.
      • Logstash - Tool for managing log files.
      • SLF4J - Abstraction layer/simple logging facade.
      • Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
      • p6spy - Enables logging for all JDBC transactions without changes to the code.
      • OpenTracing Toolbox - Collection of libraries that build on top of OpenTracing and provide extensions and plugins to existing instrumentations.
      • Flogger - Flogger is a fluent logging API for Java. It supports a wide variety of features, and has many benefits over existing logging APIs.
      • Logback - Robust logging library with interesting configuration options via Groovy.
      • SLF4J - Abstraction layer/simple logging facade.
      • Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)