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

  • Projects

    • JSON

      • 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.
    • 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.
    • 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.
    • 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.
    • 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.
    • 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.
    • 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.
      • Kamon ![c - Tool for monitoring applications running on the JVM.
    • 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.
    • 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.
    • 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.
      • 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.
    • 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.
    • 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)
      • honest-profiler - Low-overhead, bias-free sampling profiler.
      • jHiccup - Logs and records platform JVM stalls.
      • JITWatch - Analyze the JIT compiler optimisations made by the HotSpot JVM.
      • LatencyUtils - Utilities for latency measurement and reporting.
    • Platform

      • Logging - Wrapper around a variety of logging API implementations.
      • Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.
      • BeanUtils2 - Redesign of Commons BeanUtils.
      • BSF - Bean Scripting Framework - interface to scripting languages, including JSR-223.
      • Chain - Chain of Responsibility pattern implementation.
      • ClassScan - Find Class interfaces, methods, fields, and annotations without loading.
      • CLI2 - Redesign of Commons CLI.
      • Convert - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
      • Digester - XML-to-Java-object mapping utility.
      • Finder - Java library inspired by the UNIX find command.
      • Flatfile - Java library for working with flat data structures.
      • Graph - General purpose graph APIs and algorithms.
      • I18n - Adds the feature of localized message bundles that consist of one or many localized texts that belong together.
      • Id - Id is a component used to generate identifiers.
      • Imaging - Image library.
      • Javaflow - Continuation implementation to capture the state of the application.
      • JNet - JNet allows to use dynamically register url stream handlers through the java.net API.
      • JXPath - Utilities for manipulating Java Beans using the XPath syntax.
      • Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
      • Nabla - Nabla provides automatic differentiation classes that can generate derivative of any function implemented in the Java language.
      • OpenPGP - Interface to signing and verifying data using OpenPGP.
      • Performance - Small framework for microbenchmark clients, with implementations for Commons DBCP and Pool.
      • Pipeline - Provides a set of pipeline utilities designed around work queues that run in parallel to sequentially process data objects.
      • Proxy - Library for creating dynamic proxies.
      • SCXML - Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
      • CUBA Platform - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin.
      • Light-Java - Fast, lightweight and productive microservices framework with built-in [security](https://github.com/networknt/light-oauth2).
      • Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
    • Processes

      • ch.vorburger.exec - Convenient API around Apache Commons Exec.
      • zt-exec - Provides a unified API to Apache Commons Exec and ProcessBuilder.
      • zt-process-killer - Stops processes started from Java or the system processes via PID.
    • Reactive libraries

      • RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
      • Akka - Toolkit and runtime for building concurrent, distributed, fault-tolerant and event-driven applications.
      • Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
      • Reactor - Library for building reactive fast-data applications.
    • REST Frameworks

      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
      • Microserver - A convenient, extensible microservices plugin system for Spring & Spring Boot. With more than 30 plugins and growing, it supports both micro-monolith and pure microservices styles.
      • rest.li - Framework for building robust, scalable RESTful architectures using typesafe bindings and asynchronous, non-blocking IO with an end-to-end developer workflow that promotes clean practices, uniform interface design and consistent data modeling.
      • RestExpress - Thin wrapper on the JBoss Netty HTTP stack that provides scaling and performance.
      • Restlet Framework - Pioneering framework with powerful routing and filtering capabilities, and a unified client and server API.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • springdoc-openapi - Automates the generation of API documentation using Spring Boot projects.
      • Crnk - Implementation of the JSON API specification to build resource-oriented REST endpoints with sorting, filtering, paging, linking, object graphs, type-safety, bulk updates, integrations and more.
      • Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
      • javalin - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty.
      • RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
      • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
    • Science

      • Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
      • Erdos - Modular, light and easy graph framework for theoretic algorithms.
      • JGraphT - Graph library that provides mathematical graph-theory objects and algorithms.
      • JGraphX - Library for visualizing (mainly Swing) and interacting with node-edge graphs.
      • Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
      • Orson-Charts - Generates a wide variety of 3D charts that can be displayed with Swing and JavaFX or exported to PDF, SVG, PNG and JPEG. (GPL-3.0-only)
      • XChart - Light-weight library for plotting data. Many customizable chart types are available.
      • DataMelt - Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
      • Morpheus - Provides a versatile two-dimensional memory efficient tabular data structure called a DataFrame to enable efficient in-memory analytics for scientific computing on the JVM.
      • Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
      • JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
      • Indexer4j - Simple and light full text indexing and searching library.
      • Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
      • Apache Solr - Enterprise search engine optimized for high-volume traffic.
    • Security

      • Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
      • Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
      • Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.