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/eric-erki/awesome-java

Last synced: 1 day ago
JSON representation

  • Projects

    • GUI

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

      • HPPC - Primitive collections.
      • Koloboke - Hash sets and hash maps.
      • Disruptor - Inter-thread messaging library.
      • JCTools - Concurrency tools currently missing from the JDK.
      • fastutil - Fast and compact type-specific collections.
      • 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.
      • Disruptor - Inter-thread messaging library.
    • HTTP Clients

      • restQL-core-java - Microservice query language that fetches information from multiple services.
      • Async Http Client - Asynchronous HTTP and WebSocket client library.
      • Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
      • Play WS - Typesafe client with reactive streams and caching.
      • Ribbon - Client-side IPC library that is battle-tested in cloud.
      • Riptide - Client-side response routing for Spring's RestTemplate.
      • unirest-java - Simplified, lightweight HTTP client library.
      • Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
      • Retrofit - Typesafe REST client.
    • Hypermedia Types

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

      • 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.
      • jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
    • Imagery

      • ZXing - Multi-format 1D/2D barcode image processing library.
      • 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 - Compares two images with the same sizes and shows the differences visually by drawing rectangles.
      • Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
    • Introspection

      • 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.
      • 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.
    • Job Scheduling

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

      • 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. Convert JSON to Java. Pretty print JSON. Java JSON serializer.
      • jsoniter - Fast and flexible library with iterator and lazy parsing API.
      • 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.
      • JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
      • JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
      • JsonPath - Extract data from JSON using XPATH-like syntax.
    • JVM and JDK

      • 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)
      • Avian - JVM with JIT, AOT modes and iOS port.
      • Graal - Polyglot embeddable JVM. (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.
      • 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.
      • 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)
      • 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)
    • Logging

      • Logbook - Extensible, open-source library for HTTP request and response logging.
      • p6spy - Enables logging for all JDBC transactions without changes to the code.
      • Tracer - Call tracing and log correlation in distributed systems.
      • Kibana - Analyzes and visualizes log files. Some features require payment.
      • Logstash - Tool for managing log files.
      • Tracer - Call tracing and log correlation in distributed systems.
      • Logback - Robust logging library with interesting configuration options via Groovy.
      • SLF4J - Abstraction layer/simple logging facade.
      • 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)
    • Machine Learning

      • DatumBox - Provides several algorithms and pre-trained models for natural language processing.
      • DeepDive - Creates structured information from unstructured data and integrates it into an existing database.
      • JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
      • Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
      • Smile - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
      • Synapses - Lightweight library for neural networks.
      • DeepDive - Creates structured information from unstructured data and integrates it into an existing database.
      • Deeplearning4j - Distributed and multi-threaded deep learning library.
      • Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
      • Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)
    • Messaging

      • 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.
      • Aeron - Efficient, reliable, unicast and multicast message transport.
      • 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.
      • NATS client - NATS client.
    • Microservice

      • Apollo - Libraries for writing composable microservices.
      • Armeria - Asynchronous RPC/REST client/server library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC.
      • consul-api - Client for the Consul API: a distributed, highly available and datacenter-aware registry/discovery service.
      • Eureka - 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.
      • 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.
    • Miscellaneous

      • JavaX - Reinventing and extending Java with a focus on simplicity. (No explicit license)
      • CQEngine - Ultra-fast, SQL-like queries on Java collections.
      • Design Patterns - Implementation and explanation of the most common design patterns.
      • FF4J - Feature Flags for Java.
      • FizzBuzz Enterprise Edition - No-nonsense implementation of FizzBuzz made by serious businessmen for serious business purposes. (No explicit license)
      • J2ObjC - Java-to-Objective-C translator for porting Android libraries to iOS.
      • JavaCV - Java interface to OpenCV, FFmpeg, and more.
      • JBot - Framework for building chatbots. (GPL-3.0-only)
      • JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
      • Jimfs - In-memory file system.
      • Maven Wrapper - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
      • Membrane Service Proxy - Open-source, reverse-proxy framework.
      • MinimalFTP - Lightweight, small and customizable FTP server.
      • Modern Java - A Guide to Java 8 - Popular Java 8 guide.
      • Modernizer - Detect uses of legacy Java APIs.
      • PipelinR - Small utility library for using handlers and commands with pipelines.
      • Polyglot for Maven - Extensions for Maven 3.3.1+ that allows writing the POM model in dialects other than XML.
      • Simple Java Mail - Mailing with a clean and fluent API.
      • Smooks - Extensible framework for building applications that process data which means bindings, transformations, message processing and enrichment. (LGPL-3.0-only)
      • TypeTools - Tools for resolving generic types.
      • XMLBeam - Processes XML by using annotations or XPath within code.
      • yGuard - Obfuscation via renaming and shrinking.
      • JavaX - Reinventing and extending Java with a focus on simplicity. (No explicit license)
      • JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
      • JPad - Snippet runner.
      • OctoLinker - Browser extension which allows to navigate through code on GitHub more efficiently.
      • JPad - Snippet runner.
      • Membrane Service Proxy - Open-source, reverse-proxy framework.
      • Modernizer - Detect uses of legacy Java APIs.
      • JBake - Static website generator.
      • Multi-OS Engine - Open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
    • Monitoring

      • LeakCanary - Memory leak detection.
      • Automon - Combines the power of AOP with monitoring and/or logging tools.
      • Failsafe Actuator - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
      • Failsafe Actuator - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
      • JavaMelody - Performance monitoring and profiling.
      • Jaeger client - Jaeger client.
      • jmxtrans - 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.
      • nudge4j - Remote developer console from the browser for Java 8 via bytecode injection.
      • SPM ![c - Performance monitor with distributing transaction tracing for JVM apps.
      • Stagemonitor - Open-source performance monitoring and transaction tracing for JVM apps.
      • Sysmon - Lightweight platform monitoring tool for Java VMs.
      • Pinpoint - Open-source APM tool.
      • 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.
      • Glowroot - Open-source Java APM.
      • Kamon ![c - Tool for monitoring applications running on the JVM.
      • zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
    • Native

      • JavaCPP - Provides efficient and easy access to native C++.
      • JNA - Work with native libraries without writing JNI. Also provides interfaces to common system libraries.
      • JNR - 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 [Project Panama](http://openjdk.java.net/projects/panama).
    • Natural Language Processing

      • CoreNLP - Provides a set of fundamental tools for tasks like tagging, named entity recognition, and sentiment analysis. (GPL-3.0-or-later)
      • Beagle - Stored full-text search query engine.
      • CogCompNLP - Provides common annotators for plain text input. (Research and Academic Use License)
      • Lingua - Natural language detection library, especially suited for short paragraphs of text.
      • LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
      • DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
    • Networking

      • AkkaGRPC - Support for building streaming gRPC servers and clients on top of Akka Streams.
      • Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
      • Finagle - Extensible RPC system for constructing high-concurrency servers. It implements uniform client and server APIs for several protocols, and is protocol-agnostic to simplify implementation of new protocols.
      • gRPC - RPC framework based on protobuf and HTTP/2.
      • KryoNet - Provides a clean and simple API for efficient TCP and UDP client/server network communication using NIO and Kryo.
      • Nifty - Implementation of Thrift clients and servers on Netty.
      • ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
      • sshj - Programatically use SSH, SCP or SFTP.
      • TLS Channel - Implements a ByteChannel interface over SSLEngine, enabling easy-to-use (socket-like) TLS.
      • urnlib - Represent, parse and encode URNs, as in RFC 2141. (GPL-3.0-only)
      • Dubbo - High-performance RPC framework.
      • Nifty - Implementation of Thrift clients and servers on Netty.
      • Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
    • ORM

      • Doma 2 - 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.
      • Doma 2 - 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.
      • SimpleFlatMapper - Simple database and CSV mapper.
      • 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 2 - 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.
      • Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
    • PaaS

    • PDF

      • Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
      • DynamicReports - Simplifies JasperReports. (LGPL-3.0-only)
      • flyingsaucer - XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
      • JasperReports - Complex reporting engine. (LGPL-3.0-only)
      • Open HTML to PDF - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
      • OpenPDF - Open-source iText fork. (LGPL-3.0-only & MPL-2.0)
      • iText ![c - Creates PDF files programmatically.
      • Apache PDFBox - Toolbox for creating and manipulating PDFs.
      • Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
    • Performance analysis

      • 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)