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

    • Messaging

      • Emissary - Simple, lightweight, yet FAST messaging library for decoupling messages (requests and events) and message handlers.
    • Microservice

      • ActiveRPC - Lightweight and fast library for complex high-load distributed applications and Memcached-like solutions.
      • Nacos - Dynamic service discovery, configuration and service management platform for building cloud native applications.
      • Quarkus - Kubernetes stack tailored for the HotSpot and Graal VM.
      • 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.
      • JDA - Wrapping of the Discord REST API and its WebSocket events.
      • kubernetes-client - Client provides access to the full Kubernetes & OpenShift REST APIs via a fluent DSL.
      • OpenAI-Java - Java libraries for using OpenAI's GPT-3 API.
      • Sentinel - Flow control component enabling reliability, resilience and monitoring for microservices.
      • KeenType - Modernized version of a Java-based implementation of the New Typesetting System, which was heavily based on Donald E. Knuth's original TeX.
    • Miscellaneous

      • JBake - Static website generator.
      • JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
      • JObfuscator![c - Source code obfuscator.
      • Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
      • JPad - Snippet runner.
      • OpenRefine - Tool for working with messy data: cleaning, transforming, extending it with web services and linking it to databases.
      • Svix - Library for the Svix API to send webhooks and verify signatures.
      • Togglz - Implementation of the Feature Toggles pattern.
      • 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)
      • IP2Location.io Java SDK - Wrapper for the IP2Location.io Geolocation API and the IP2WHOIS domain WHOIS API.
      • ISBN core - A small library that contains a representation object of ISBN-10 and ISBN-13 and tools to parse, validate and format one.
      • J2ObjC - Java-to-Objective-C translator for porting Android libraries to iOS.
      • JBot - Framework for building chatbots. (GPL-3.0-only)
      • JCuda - JCuda offers Java bindings for CUDA and CUDA-related libraries.
      • JEmoji - An auto-generated emoji library that provides type-safe direct access to emojis and alias support for Discord, Slack, GitHub and many more features.
      • Jimfs - In-memory file system.
      • jOOX - Simple wrapper for the org.w3c.dom package, to allow for fluent XML document creation and manipulation with an API inspired by jQuery.
      • jsweet - Source transpiler to TypeScript/JavaScript.
      • Maven Wrapper - Analogue of Gradle Wrapper for Maven, allows building projects without installing maven.
      • MinimalFTP - Lightweight, small and customizable FTP server.
      • LittleProxy - High performance HTTP proxy atop Netty's event-based networking library.
      • Modern Java - A Guide to Java 8 - Popular Java 8 guide.
      • Modernizer - Detect uses of legacy Java APIs.
      • OctoLinker - Browser extension which allows to navigate through code on GitHub more efficiently.
      • 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.
      • RR4J - RR4J is a tool that records java bytecode execution and later allows developers to replay locally.
      • Simple Java Mail - Mailing with a clean and fluent API.
      • Smooks - Framework for fragment-based message processing. (Apache-2.0 OR LGPL-3.0-or-later)
      • TypeTools - Tools for resolving generic types.
      • webcam-capture - Library for using built-in and external webcams directly in Java.
      • XMLBeam - Processes XML by using annotations or XPath within code.
      • yGuard - Obfuscation via renaming and shrinking.
      • JBang - JBang makes it easy to use Java for scripting. It lets you use a single file for
      • JPad - Snippet runner.
      • Membrane Service Proxy - Open-source, reverse-proxy framework.
      • JBang - JBang makes it easy to use Java for scripting. It lets you use a single file for code and dependency management and allows you to run it directly.
      • Nyagram - Reactive, type-safe framework for Telegram bots based on Spring Boot 3 and Java 21.
      • Rollgate - Cloud-managed feature flag platform with a Java SDK, supporting gradual rollouts, A/B testing, and real-time updates.
    • Mobile Development

      • Codename One - Cross-platform solution for writing native mobile apps. (GPL-2.0-only WITH Classpath-exception-2.0)
      • MobileUI - Cross-platform framework for developing mobile apps with native UI in Java and Kotlin.
      • Multi-OS Engine - Open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
    • Monitoring

      • Glowroot - Open-source Java APM.
      • hippo4j - Dynamic and observable thread pool framework.
      • 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.
      • Jolokia - JMX over REST.
      • zipkin - Distributed tracing system which gathers timing data needed to troubleshoot latency problems in microservice architectures.
      • Apitally - Simple, privacy-focused API monitoring, analytics and request logging for Spring Boot apps.
      • Automon - Combines the power of AOP with monitoring and/or logging tools.
      • Datadog ![c - Modern monitoring & analytics.
      • Dropwizard Metrics - Expose metrics via JMX or HTTP and send them to a database.
      • Failsafe Actuator - Out of the box monitoring of Failsafe Circuit Breaker in Spring-Boot environment.
      • HertzBeat - Real-time monitoring system with custom-monitor and agentless.
      • Jaeger client - Jaeger client.
      • JavaMelody - Performance monitoring and profiling.
      • 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.
      • Micrometer - Vendor-neutral metrics/observability facade for the most popular metrics/observability libraries.
      • Micrometer Tracing - Vendor-neutral distributed tracing facade for the most popular tracer libraries.
      • nudge4j - Remote developer console from the browser for Java 8 via bytecode injection.
      • OpenTelemetry - Instrument, generate, collect, and export telemetry data to help you analyze your software’s performance and behavior.
      • Prometheus - Provides a multi-dimensional data model, DSL, autonomous server nodes and much more.
      • Sentry ![c - Integration with [Sentry](https://github.com/getsentry/sentry), an application error tracking and performance analysis platform.
      • 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.
      • Boot Usage Spring Boot Starter - Spring Boot Actuator extension providing application startup and runtime metrics including JVM uptime, memory usage, and CPU load.
      • 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.
    • Native

      • Aparapi - Converts bytecode to OpenCL which allows execution on GPUs.
      • 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).
      • native-lib-loader - Native library loader for extracting and loading native libraries from Java.
    • 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)
      • DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
      • LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
      • CogCompNLP - Provides common annotators for plain text input. (Research and Academic Use License)
      • Hypherator - Java hyphenation library with iterator-like interface. Can be used out-of-the box - dictionaries for multiple languages are bundled in.
      • LingPipe - Toolkit for tasks ranging from POS tagging to sentiment analysis.
    • Networking

      • MINA - Abstract, event-driven async I/O API for network operations over TCP/IP and UDP/IP via Java NIO.
      • Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
      • Commons-networking - Client for server-sent events (SSE).
      • Comsat - Integrates standard Java web-related APIs with Quasar fibers and actors.
      • Dubbo - High-performance RPC framework.
      • Grizzly - NIO framework. Used as a network layer in Glassfish.
      • gRPC-java - 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.
      • Drift - Easy-to-use, annotation-based library for creating Thrift clients and serializable types.
      • ServiceTalk - Framework built on Netty with APIs tailored to specific protocols and support for multiple programming paradigms.
      • sshj - Programmatically 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)
      • Fluency - High throughput data ingestion logger to Fluentd and Fluent Bit.
    • ORM

      • 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.
      • 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)
      • Doma - 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.
      • MyBatis - Couples objects with stored procedures or SQL statements.
      • MyBatis-Plus - A powerful enhanced toolkit of MyBatis for simplifying development.
      • ObjectiveSql - ActiveRecord ORM for rapid development and convention over configuration.
      • Permazen - Language-natural persistence layer.
      • SimpleFlatMapper - Simple database and CSV mapper.
      • mybatis-dynamic - Code-first dynamic ORM for MyBatis with runtime schema modification.
    • PaaS

    • Pathfinding

      • Pathetic - A highly configurable 3D A\* pathfinding library that uses specific optimizations for high performance.
    • PDF

      • Apache FOP - Creates PDFs from XSL-FO.
      • Apache PDFBox - Toolbox for creating and manipulating PDFs.
      • Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
      • Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
      • 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)
      • Tabula - Extracts tables from PDF files.
      • iText ![c - Creates PDF files programmatically.
      • Open HTML to PDF - Properly supports modern PDF standards based on flyingsaucer and Apache PDFBox.
    • Performance analysis

      • fastThread ![c - Analyze and visualize thread dumps with a free cloud-based upload interface.
      • 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)
      • 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.
      • Heap Seance - Memory leak diagnostics that orchestrates jcmd, jmap, jstat, JFR, Eclipse MAT, and async-profiler into a structured investigation workflow with confidence-based verdicts.
      • JVM Hotpath - Java agent for line-level execution frequency analysis to identify algorithmic bottlenecks.
    • Platform

      • BCEL - Byte Code Engineering Library - analyze, create, and manipulate Java class files.
      • BeanUtils - Easy-to-use wrappers around the Java reflection and introspection APIs.
      • BeanUtils2 - Redesign of Commons BeanUtils.
      • BSF - Bean Scripting Framework - interface to scripting languages, including JSR-223.
      • ClassScan - Find Class interfaces, methods, fields, and annotations without loading.
      • CLI - Command-line arguments parser.
      • CLI2 - Redesign of Commons CLI.
      • 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.
      • Convert - Commons-Convert aims to provide a single library dedicated to the task of converting an object of one type to another.
      • 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.
      • Digester - XML-to-Java-object mapping utility.
      • 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.
      • 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.
      • IO - Collection of I/O utilities.
      • Javaflow - Continuation implementation to capture the state of the application.
      • 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.
      • 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.
      • Lang - Provides extra functionality for classes in java.lang.
      • Logging - Wrapper around a variety of logging API implementations.
      • 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.
      • Net - Collection of network utilities and protocol implementations.
      • 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.
      • Pool - Generic object pooling component.
      • 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.
      • Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
      • Light-4J - Fast, lightweight and productive microservices framework with built-in [security](https://github.com/networknt/light-oauth2/).
      • Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other applications.