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: 8 days ago
JSON representation

  • Projects

    • Distributed Applications

      • Failsafe - Simple failure handling with retries and circuit breakers.
      • JGroups - Toolkit for reliable messaging and cluster creation.
      • resilience4j - Functional fault tolerance library.
      • OpenIG - High-performance reverse proxy server with specialized session management and credential replay functionality.
      • ScaleCube Services - Embeddable Cluster-Membership library based on SWIM and gossip protocol.
      • Zuul - Gateway service that provides dynamic routing, monitoring, resiliency, security, and more.
    • 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.
      • Artipie - Binary artifact management toolkit which hosts them on the file system or S3.
      • Capsule - Simple and powerful packaging and deployment. A fat JAR on steroids, or a "Docker for Java" that supports JVM-optimized containers.
      • Getdown - System for deploying Java applications to end-user computers and keeping them up to date. Developed as an alternative to Java Web Start.
      • jlink.online - Builds optimized runtimes over HTTP.
      • packr - Packs JARs, assets and the JVM for native distribution on Windows, Linux and macOS.
      • really-executable-jars-maven-plugin - Maven plugin for making self-executing JARs.
      • 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.
      • fastexcel - High performance library to read and write large Excel (XLSX) worksheets.
      • zerocell - Annotation-based API for reading data from Excel sheets into POJOs with focus on reduced overhead.
      • Sheetz - Library for reading and writing Excel and CSV files with annotation-based mapping, streaming support, and built-in validation.
    • Financial

      • Cassandre - Trading bot framework.
      • Parity - Platform for trading venues.
      • Philadelphia - Low-latency financial information exchange.
      • Square - Integration with the Square API.
      • Stripe - Integration with the Stripe API.
      • ta4j - Library for technical analysis.
    • Formal Verification

      • Daikon - Detects likely program invariants and generates JML specs based on those invariants.
      • 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)
      • CATG - Concolic unit testing engine. Automatically generates unit tests using formal methods.
      • Java Path Finder (JPF) - JVM formal verification tool containing a model checker and more. Created by NASA.
      • 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)
    • 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)
      • Fugue - Functional extensions to Guava.
      • jOOλ - 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 - Gatherers library for Java Stream API. Gatherers can enhance streams with custom intermediate operations.
      • protonpack - Collection of stream utilities.
      • StreamEx - Enhances Java 8 Streams.
      • Parallel Collectors - Stream API Collectors for parallel processing with custom thread pools, designed for I/O-heavy workloads.
    • 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.
      • vulkan4j - Vulkan, OpenGL ES2 and GLFW Memory Allocator bindings.
      • 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.
      • Geo - GeoHash utilities in Java.
      • GraphHopper - Road-routing engine. Used as a Java library or standalone web service.
      • Jgeohash - Library for using the GeoHash algorithm.
      • Mapsforge - Map rendering based on OpenStreetMap data. (LGPL-3.0-only)
      • Spatial4j - General-purpose spatial/geospatial library.
      • ArcGIS Maps SDK for Java ![c - JavaFX library for adding mapping and GIS functionality to desktop apps.
    • GUI

      • JavaFX - Successor of Swing.
      • Scene Builder - Visual layout tool for JavaFX applications.
      • SWT - Graphical widget toolkit.
      • JavaFX - Successor of Swing.
      • SnapKit - Modern Java UI library for both desktop and web.
      • Sierra - Lightwieght declarative DSL for rapid development of Swing applications.
    • High Performance

      • HPPC - Primitive collections.
      • Disruptor - Inter-thread messaging library.
      • JCTools - Concurrency tools currently missing from the JDK.
      • 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

      • Apache HttpComponents - Toolset of low-level Java components focused on HTTP and associated protocols.
      • Avaje Http Client - Wrapper on JDK 11's HttpClient that adds Feign-like interface among other enhancements.
      • Retrofit - Typesafe REST client.
      • Async Http Client - Asynchronous HTTP and WebSocket client library.
      • Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
      • Google HTTP Client - Pluggable HTTP transport abstraction with support for java.net.HttpURLConnection, Apache HTTP Client, Android, Google App Engine, XML, Gson, Jackson and Protobuf.
      • methanol - HTTP client extensions library.
      • Ribbon - Client-side IPC library that is battle-tested in the cloud.
      • Riptide - Client-side response routing for Spring's RestTemplate.
      • unirest-java - Simplified, lightweight HTTP client library.
    • Hypermedia Types

      • hate - Builds hypermedia-friendly objects according to HAL specification.
      • JSON-LD - JSON-LD implementation.
      • Siren4J - Library for the Siren specification.
      • Spring HATEOAS - Standalone and Spring support for building hypermedia-based APIs using HAL, HAL FORMS, Collection+JSON, ALPS and UBER.
    • 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.
      • Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
      • Eclipse - Established open-source project with support for lots of plugins and languages.
    • Imagery

      • ZXing - Multi-format 1D/2D barcode image processing library.
      • Barcode-Lib4J - Generates QR Code, DataMatrix, and other 1D/2D barcodes as vector (PDF, EPS, SVG) and raster (PNG, BMP, JPG) images with DPI awareness, high precision, and CMYK color model support.
      • Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
      • Tess4J - JNA wrapper for Tesseract OCR API.
      • Thumbnailator - High-quality thumbnail generation library.
      • TwelveMonkeys - Collection of plugins that extend the number of supported image file formats.
      • image-comparison - Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison.
      • vips-ffm - Comprehensive bindings for libvips, using Java's "Foreign Function & Memory" API.
    • 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.
      • ClassGraph - ClassGraph (formerly FastClasspathScanner) is an uber-fast, ultra-lightweight, parallelized classpath scanner and module scanner for Java, Scala, Kotlin and other JVM languages.
      • jOOR - 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.
      • ReflectASM - ReflectASM is a very small Java library that provides high performance reflection by using code generation.
      • 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.
    • Job Scheduling

      • JobRunr - 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 - Feature-rich, open source job scheduling library that can be integrated within virtually any Java application.
      • Sundial - Lightweight framework to simply define jobs, define triggers and start the scheduler.
      • Wisp - Simple library with minimal footprint and straightforward API.
      • db-scheduler - Persistent and cluster-friendly scheduler.
      • easy-batch - 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 - 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.
    • 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.
      • Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
      • Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
      • Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
      • Genson - Powerful and easy-to-use Java-to-JSON conversion library.
      • DSL-JSON - JSON library with advanced compile time databinding.
      • HikariJSON - High-performance JSON parser, 2x faster than Jackson.
      • jackson-modules-java8 - Set of Jackson modules for Java 8 datatypes and features.
      • Jackson-datatype-money - Open-source Jackson module to support JSON serialization and deserialization of JavaMoney data types.
      • JSON-io - Convert Java to JSON/TOON and back. Supports complex object graphs, cyclic references, and TOON format for 40-50% LLM token savings.
      • LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
      • Yasson - Binding layer between classes and JSON documents similar to JAXB.
      • fastjson - Very fast processor with no additional dependencies and full data binding.
      • Jolt - JSON to JSON transformation tool.
      • JsonPath - Extract data from JSON using XPATH-like syntax.
      • JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
    • JVM and JDK

      • Adopt Open JDK - Community-driven OpenJDK builds, including both HotSpot and OpenJ9.
      • Corretto - No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (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)
      • 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)
      • RedHat Open JDK - RedHat's OpenJDK distribution. (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.
      • Graal - Polyglot embeddable JVM. (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)
      • Microsoft JDK - Microsoft Build of OpenJDK, Free, Open Source, Freshly Brewed!
      • 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.
      • Dragonwell8 - Downstream version of OpenJDK optimized for online e-commerce, financial, logistics applications.
      • Zulu - OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH Classpath-exception-2.0)
    • 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.
      • Echopraxia - 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.
      • Logbook - Extensible, open-source library for HTTP request and response logging.
      • 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.
    • Machine Learning

      • Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
      • DatumBox - Provides several algorithms and pre-trained models for natural language processing.
      • DJL - High-level and engine-agnostic framework for deep learning.
      • oj! Algorithms - High-performance mathematics, linear algebra and optimisation needed for data science, machine learning and scientific computing.
      • Tribuo - Provides tools for classification, regression, clustering, model development and interfaces with other libraries such as scikit-learn, pytorch and TensorFlow.
      • JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
      • m2cgen - CLI tool to transpile models into native code.
      • Neureka - A lightweight, platform independent, OpenCL accelerated nd-array/tensor library.
      • Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
      • Siddhi - Cloud native streaming and complex event processing engine.
      • Smile - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
      • Intelligent java - Seamlessly integrate with remote deep learning and language models programmatically.
      • Deeplearning4j - Distributed and multi-threaded deep learning library.
    • Messaging

      • 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 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.
      • Hermes - Fast and reliable message broker built on top of Kafka.
      • Aeron - Efficient, reliable, unicast and multicast message transport.
      • Deezpatch - Simple, lightweight, and performant dispatch library for decoupling messages (requests and events) and message handlers.
      • EventBus - Simple publish/subscribe event bus.
      • JeroMQ - Implementation of ZeroMQ.
      • Nakadi - Provides a RESTful API on top of Kafka.
      • RabbitMQ Java client - RabbitMQ client.
      • Smack - Cross-platform XMPP client library.
      • NATS client - NATS client.
      • AutoMQ - AutoMQ is a cloud-native, serverless reinvented Kafka that is easily scalable, manage-less and cost-effective.