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

  • Projects

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

      • 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.
    • 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.
      • Lagom - Framework for creating microservice-based systems.
    • 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.
      • JBot - Framework for building chatbots. (GPL-3.0-only)
      • Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
    • 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.
      • Metrics - Expose metrics via JMX or HTTP and send them to a database.
      • Datadog ![c - Modern monitoring & analytics.
    • 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.
      • Grizzly - NIO framework. Used as a network layer in Glassfish.
      • Nifty - Implementation of Thrift clients and servers on Netty.
    • 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.
      • Ebean - Provides simple and fast data access.
      • EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
      • Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
      • MyBatis - Couples objects with stored procedures or SQL statements.
    • 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 FOP - Creates PDFs from XSL-FO.
    • 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.
      • fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
      • GCeasy ![c - Tool to analyze and visualize GC logs. It provides a free cloud-based upload interface.
    • 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.
      • BCEL - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
      • BeanUtils - Easy-to-use wrappers around the Java reflection and introspection APIs.
      • CLI - Command-line arguments parser.
      • Codec - General encoding/decoding algorithms, e.g. phonetic, base64 or URL.
      • Collections - Extends or augments the Java Collections Framework.
      • Compress - Defines an API for working with tar, zip and bzip2 files.
      • Configuration - Reading of configuration/preferences files in various formats.
      • CSV - Component for reading and writing comma separated value files.
      • Daemon - Alternative invocation mechanism for unix-daemon-like java code.
      • DBCP - Database connection pooling services.
      • DbUtils - JDBC helper library.
      • Email - Library for sending e-mail from Java.
      • Exec - API for dealing with external process execution and environment management in Java.
      • FileUpload - File upload capability for your servlets and web applications.
      • Functor - Function that can be manipulated as an object, or an object representing a single, generic function.
      • IO - Collection of I/O utilities.
      • JCI - Java Compiler Interface.
      • JCS - Java Caching System.
      • Jelly - XML based scripting and processing engine.
      • Jexl - Expression language which extends the Expression Language of the JSTL.
      • Lang - Provides extra functionality for classes in java.lang.
      • Net - Collection of network utilities and protocol implementations.
      • OGNL - Object-graph navigation language.
      • Pool - Generic object pooling component.
      • Proxy - Library for creating dynamic proxies.
      • RDF - Common implementation of RDF 1.1 that could be implemented by systems on the JVM.
      • RNG - Commons Rng provides implementations of pseudo-random numbers generators.
      • SCXML - Implementation of the State Chart XML specification aimed at creating and maintaining a Java SCXML engine.
      • Validator - Framework to define validators and validation rules in an xml file.
      • VFS - Virtual File System component for treating files, FTP, SMB, ZIP and such like as a single logical file system.
      • Weaver - Provides an easy way to enhance (weave) compiled bytecode.
      • 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.