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), an application error tracking and performance analysis platform.
- SPM .
- 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
- AWS Elastic Beanstalk ).
- 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.
-
Programming Languages
Categories
Sub Categories
Testing
43
Miscellaneous
35
Database
25
Monitoring
21
Utility
21
Security
18
JSON
15
Code Generators
14
Related Awesome Lists
13
Science
12
Configuration
12
Networking
11
Code Analysis
11
Messaging
10
Distributed Applications
9
REST Frameworks
9
Distribution
9
Functional Programming
8
Machine Learning
8
Imagery
8
CLI
8
Data Structures
8
Microservice
8
Bytecode Manipulation
8
Web Frameworks
7
Template Engine
7
ORM
7
Bean Mapping
7
Performance analysis
7
PDF
7
HTTP Clients
7
Job Scheduling
7
Geospatial
6
Serialization
6
Development
6
Financial
6
Logging
6
High Performance
6
Introspection
5
Date and Time
5
JVM and JDK
5
Dependency Injection
5
Native
5
Artificial Intelligence
4
Code Coverage
4
CSV
4
Hypermedia Types
4
Web Crawling
4
Formal Verification
3
Document Processing
3
Natural Language Processing
3
Version Managers
3
PaaS
3
Game Development
3
Reactive libraries
3
Processes
3
Architecture
2
Build
2
GUI
2
Cloud
2
Platform
2
Compiler-compiler
1
Workflow Orchestration Engines
1
Pathfinding
1
Server
1
Constraint Satisfaction Problem Solver
1
Caching
1
Decentralization
1
Distributed Transactions
1
IDE
1
Podcasts and Screencasts
1
Search
1
Computer Vision
1
Websites
1
Keywords
java
215
spring-boot
17
kotlin
17
testing
16
spring
14
microservices
13
static-analysis
12
android
12
monitoring
12
database
10
java-library
10
awesome
10
http
10
jvm
10
json
9
rest-api
8
rest
8
xml
7
machine-learning
7
sql
7
javascript
7
awesome-list
7
annotation-processor
7
static-code-analysis
6
maven-plugin
6
logging
6
jdbc
6
rpc
6
java-8
6
java8
6
python
6
configuration
6
junit
6
metrics
6
high-performance
6
library
6
orm
6
cloud-native
6
api
6
functional-programming
5
gradle
5
testing-tools
5
generator
5
javafx
5
test-automation
5
framework
5
scheduler
5
code-analysis
5
grpc
5
serialization
5