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

      • 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.
    • 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.
      • Chain - Chain of Responsibility pattern implementation.
      • Graph - General purpose graph APIs and algorithms.
      • Monitoring - Monitoring aims to provide a simple but extensible monitoring solution for Java applications.
    • 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.
    • 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.
    • 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.
      • 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.
    • 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.
      • Hdiv - Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks.
      • jjwt - JSON web token for Java and Android.
      • Jwks RSA - JSON Web Key Set parser.
      • Kalium - Binding for the Networking and Cryptography (NaCl) library.
      • Keywhiz - System for distributing and managing secrets.
      • Nbvcxz - Advanced password strength estimation.
      • OACC - Provides permission-based authorization services.
      • pac4j - Security engine.
      • SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
      • Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
      • Vault - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.
      • Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
    • Serialization

      • FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
      • FST - JDK-compatible, high-performance object graph serialization.
      • Kryo - Fast and efficient object graph serialization framework.
      • MessagePack - Efficient binary serialization format.
      • PHP Serializer - Serializing objects in the PHP serialization format.
    • Server

      • nanohttpd - Tiny, easily embeddable HTTP server.
      • Jetty - Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
      • WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
    • Template Engine

      • Jtwig - Modular, configurable and fully tested template engine.
      • Jade4J - Implementation of Pug (formerly known as Jade).
      • Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
      • Handlebars.java - Logicless and semantic Mustache templates.
      • Thymeleaf - Aims to be a substitute for JSP and works for XML files.
    • Testing

      • GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
      • Serenity BDD - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
      • ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
      • Hoverfly Java - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.