An open API service indexing awesome lists of open source software.

fucking-awesome-java

A curated list of awesome frameworks, libraries and software for the Java programming language. With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-java

Last synced: 12 days ago
JSON representation

  • Projects

    • Imagery

      • Barcode-Lib4J - Generates QR Code, DataMatrix, and other 1D/2D barcodes as vector (PDF, EPS, SVG) and raster (PNG, BMP, JPG) images with DPI awareness, high precision, and CMYK color model support.
      • Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
      • 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.
      • ZXing - Multi-format 1D/2D barcode image processing library.
      • image-comparison - Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison.
      • vips-ffm - Comprehensive bindings for libvips, using Java's "Foreign Function & Memory" API.
    • 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.
    • Job Scheduling

      • JobRunr - Job scheduling library which utilizes lambdas for fire-and-forget, delayed and recurring jobs. Guarantees execution by single scheduler instance using optimistic locking. Has features for persistence, minimal dependencies and is embeddable.
      • 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.
      • easy-batch - Set up batch jobs with simple processing pipelines. Records are read in sequence from a data source, processed in pipeline and written in batches to a data sink.
      • shedlock - Makes sure that your scheduled tasks are executed at most once at the same time. If a task is being executed on one node, it acquires a lock which prevents execution of the same task from another node or thread.
    • JSON

      • DSL-JSON - JSON library with advanced compile time databinding.
      • Genson - Powerful and easy-to-use Java-to-JSON conversion library.
      • Gson - Serializes objects to JSON and vice versa. Good performance with on-the-fly usage.
      • 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.
      • Jackson - Similar to GSON, but offers performance gains if you need to instantiate the library more often.
      • JSON-io - Convert Java to JSON/TOON and back. Supports complex object graphs, cyclic references, and TOON format for 40-50% LLM token savings.
      • LoganSquare - JSON parsing and serializing library based on Jackson's streaming API. Outperforms GSON & Jackson's library.
      • Moshi - Modern JSON library, less opinionated and uses built-in types like List and Map.
      • 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.
      • JsonPath - Extract data from JSON using XPATH-like syntax.
      • JsonSurfer - Streaming JsonPath processor dedicated to processing big and complicated JSON data.
    • JVM and JDK

      • Graal - Polyglot embeddable JVM. (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)
      • Microsoft JDK - Microsoft Build of OpenJDK, Free, Open Source, Freshly Brewed!
      • 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.
      • Dragonwell8 - Downstream version of OpenJDK optimized for online e-commerce, financial, logistics applications.
    • Logging

      • Echopraxia - API designed around structured logging, rich context, and conditional logging. There are Logback and Log4J2 implementations, but Echopraxia's API is completely dependency-free, meaning it can be implemented with any logging API.
      • Logbook - Extensible, open-source library for HTTP request and response logging.
      • p6spy - Enables logging for all JDBC transactions without changes to the code.
      • OpenTracing Toolbox - Collection of libraries that build on top of OpenTracing and provide extensions and plugins to existing instrumentations.
      • Logback - Robust logging library with interesting configuration options via Groovy.
      • SLF4J - Abstraction layer/simple logging facade.
    • Machine Learning

      • Intelligent java - Seamlessly integrate with remote deep learning and language models programmatically.
      • JSAT - Algorithms for pre-processing, classification, regression, and clustering with support for multi-threaded execution. (GPL-3.0-only)
      • m2cgen - CLI tool to transpile models into native code.
      • Neureka - A lightweight, platform independent, OpenCL accelerated nd-array/tensor library.
      • Oryx 2 - Framework for building real-time, large-scale machine learning applications. Includes end-to-end applications for collaborative filtering, classification, regression, and clustering.
      • Siddhi - Cloud native streaming and complex event processing engine.
      • Smile - Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and a visualization library.
      • Intelligent java - Seamlessly integrate with remote deep learning and language models programmatically.
    • Messaging

      • Aeron - Efficient, reliable, unicast and multicast message transport.
      • Deezpatch - Simple, lightweight, and performant dispatch library for decoupling messages (requests and events) and message handlers.
      • 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.
      • AutoMQ - AutoMQ is a cloud-native, serverless reinvented Kafka that is easily scalable, manage-less and cost-effective.
      • Emissary - Simple, lightweight, yet FAST messaging library for decoupling messages (requests and events) and message handlers.
    • Microservice

      • 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

      • 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.
      • JObfuscator![c - Source code obfuscator.
      • jOOX - Simple wrapper for the org.w3c.dom package, to allow for fluent XML document creation and manipulation with an API inspired by jQuery.
      • JPad - Snippet runner.
      • 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)
      • Svix - Library for the Svix API to send webhooks and verify signatures.
      • 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.
      • Nyagram - Reactive, type-safe framework for Telegram bots based on Spring Boot 3 and Java 21.
    • Monitoring

      • 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.
      • hippo4j - Dynamic and observable thread pool framework.
      • 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 <b><code>&nbsp;44039⭐</code></b> <b><code>&nbsp;&nbsp;4717🍴</code></b> [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.
    • 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

      • 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

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

      • 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

      • DynamicReports - Simplifies JasperReports. (LGPL-3.0-only)
      • flyingsaucer - XML/XHTML and CSS 2.1 renderer. (LGPL-2.1-or-later)
      • 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

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

      • Light-4J - Fast, lightweight and productive microservices framework with built-in <b><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?⭐</code></b> <b><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;?🍴</code></b> [security](https://github.com/networknt/light-oauth2/)).
      • Orienteer - Open-source business application platform for rapid configuration/development of CRM, ERP, LMS and other 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

      • Reactive Streams - Provides a standard for asynchronous stream processing with non-blocking backpressure.
      • Reactor - A framework for building non-blocking applications on the JVM, providing support for reactive programming.
      • RxJava - Allows for composing asynchronous and event-based programs using observable sequences.
    • REST Frameworks

      • Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
      • Microserver - 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.
      • openapi-generator - Allows generation of API client libraries, SDKs, server stubs, documentation and configuration automatically given an OpenAPI Spec.
      • 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.
    • Science

      • Chart-FX - Scientific charting library with focus on performance optimised real-time data visualisation at 25 Hz update rates for large data sets.
      • 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.
      • LogicNG - Library for creating, manipulating and solving Boolean and Pseudo-Boolean formulas.
      • Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
      • 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.
      • 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)
      • Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
      • XChart - Light-weight library for plotting data. Many customizable chart types are available.
      • jSciPy - jSciPy is a Java library designed for scientific computing, offering functionalities inspired by popular scientific computing libraries. It currently provides modules for signal processing, including Butterworth filters, peak finding algorithms, and an RK4 solver for ordinary differential equations.