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: 1 day ago
JSON representation
-
Projects
-
GUI
- Scene Builder - Visual layout tool for JavaFX applications.
- SWT - Graphical widget toolkit.
-
High Performance
- HPPC - Primitive collections.
- Koloboke - Hash sets and hash maps.
- Disruptor - Inter-thread messaging library.
- JCTools - Concurrency tools currently missing from the JDK.
- fastutil - Fast and compact type-specific collections.
- Eclipse Collections - Collections framework inspired by Smalltalk.
- Agrona - Data structures and utility methods that are common in high-performance applications.
- fastutil - Fast and compact type-specific collections.
- Disruptor - Inter-thread messaging library.
-
HTTP Clients
- restQL-core-java - Microservice query language that fetches information from multiple services.
- Async Http Client - Asynchronous HTTP and WebSocket client library.
- Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- Play WS - Typesafe client with reactive streams and caching.
- Ribbon - Client-side IPC library that is battle-tested in cloud.
- Riptide - Client-side response routing for Spring's RestTemplate.
- unirest-java - Simplified, lightweight HTTP client library.
- Feign - HTTP client binder inspired by Retrofit, JAXRS-2.0, and WebSocket.
- Retrofit - Typesafe REST client.
-
Hypermedia Types
-
IDE
- Visual Studio Code - Provides Java support for lightweight projects with a simple, modern workflow by using extensions from the internal marketplace.
- Eclipse - Established open-source project with support for lots of plugins and languages.
- jGRASP - Created to provide software visualizations that work in conjunction with the debugger such as Control Structure Diagrams, UML class diagrams and Object Viewer.
-
Imagery
- ZXing - Multi-format 1D/2D barcode image processing library.
- 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.
- image-comparison - Compares two images with the same sizes and shows the differences visually by drawing rectangles.
- Imgscalr - Simple, efficient and hardware-accelerated image-scaling library implemented in pure Java 2D.
-
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.
- 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.
-
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.
- Corretto - No-cost, multiplatform, production-ready distribution of OpenJDK by Amazon. (GPL-2.0-only WITH Classpath-exception-2.0)
- Liberica JDK - Built from OpenJDK, thoroughly tested and passed the JCK. (GPL-2.0-only WITH Classpath-exception-2.0)
- SAP Machine - SAP's no-cost, rigorously tested and JCK-verified OpenJDK friendly fork. (GPL-2.0-only WITH Classpath-exception-2.0)
- Zulu - OpenJDK builds for Windows, Linux, and macOS. (GPL-2.0-only WITH Classpath-exception-2.0)
-
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.
- Apache Log4j 2 - Complete rewrite with a powerful plugin and configuration architecture.
- Graylog - Open-source aggregator suited for extended role and permission management. (GPL-3.0-only)
-
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.
- Apache Mahout - Scalable algorithms focused on collaborative filtering, clustering and classification.
- Weka - Collection of algorithms for data mining tasks ranging from pre-processing to visualization. (GPL-3.0-only)
-
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.
- Apache Pulsar - Distributed pub/sub-messaging system.
- Apache RocketMQ - Fast, reliable, and scalable distributed messaging platform.
- Apache Qpid - Apache Qpid makes messaging tools that speak AMQP and support many languages and platforms.
- Hermes - Fast and reliable message broker built on top of Kafka.
- NATS client - NATS client.
-
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.
- Helidon - Two-style approach for writing microservices: Functional-reactive and as an implementation of MicroProfile.
- Micronaut - Modern full-stack framework with focus on modularity, minimal memory footprint and startup time.
- Nacos - Dynamic service discovery, configuration and service management platform for building cloud native applications.
-
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.
- Multi-OS Engine - Open-source, cross-platform engine to develop native mobile (iOS, Android, etc.) apps.
-
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 .
-
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.
- DKPro - Collection of reusable NLP tools for linguistic pre-processing, machine learning, lexical resources, etc.
-
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.
- Nifty - Implementation of Thrift clients and servers on Netty.
- Undertow - Web server providing both blocking and non-blocking APIs based on NIO. Used as a network layer in WildFly. (LGPL-2.1-only)
-
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.
- 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.
- 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.
- Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
-
PaaS
- AWS Elastic Beanstalk ![c - AWS-based, with support for Tomcat and Jetty.
- Google Cloud ![c - Google's cloud infrastructure.
- Heroku ![c - Abstract computing environments.
- Microsoft Azure ![c - Microsoft's cloud infrastructure.
-
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 PDFBox - Toolbox for creating and manipulating PDFs.
- Dynamic Jasper - Abstraction layer to JasperReports. (LGPL-3.0-only)
-
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)
-
Programming Languages
Categories
Sub Categories
Twitter
67
Testing
43
Miscellaneous
31
Database
26
REST Frameworks
24
Platform
22
Security
17
JSON
17
Monitoring
16
Websites
15
Distributed Applications
14
Utility
14
Web Frameworks
14
CLI
13
JVM and JDK
13
Networking
13
Science
12
Messaging
12
Awesome Lists
11
Geospatial
11
Logging
10
Machine Learning
10
Bean Mapping
10
Code Analysis
10
HTTP Clients
9
Bytecode Manipulation
9
PDF
9
Data Structures
9
High Performance
9
Development
8
Configuration
8
Formal Verification
8
Distribution
8
ORM
7
Template Engine
7
Microservice
7
Code Generators
7
Dependency Injection
7
Functional Programming
7
Introspection
6
Web Crawling
6
Natural Language Processing
6
Imagery
6
Distributed Transactions
5
Performance analysis
5
Server
5
Influential Books
5
Reactive libraries
5
Serialization
5
Financial
4
Document Processing
4
Caching
4
CSV
4
Job Scheduling
4
Date and Time
4
Podcasts and Screencasts
4
PaaS
4
Search
4
Version Managers
3
GUI
3
Code Coverage
3
IDE
3
Build
3
Communities
3
Game Development
3
Constraint Satisfaction Problem Solver
3
Processes
3
Cluster Management
3
Native
3
Compiler-compiler
3
Hypermedia Types
2
Frontends
1
Keywords
java
141
android
13
static-analysis
10
spring-boot
10
monitoring
10
microservices
9
jvm
8
http
7
testing
7
java-library
7
json
7
spring
7
rpc
7
awesome
7
kotlin
6
javafx
6
jdbc
6
static-code-analysis
6
grpc
5
reactive-streams
5
machine-learning
5
awesome-list
5
scala
5
javascript
5
xml
5
reactive
4
testing-tools
4
annotation-processor
4
scheduler
4
code-analysis
4
database
4
serialization
4
framework
4
jackson
4
library
4
python
4
java-8
4
functional-programming
4
http-client
4
nlp
4
c
4
test-automation
3
code-generator
3
performance
3
configuration
3
junit
3
c-plus-plus
3
concurrency
3
circuit-breaker
3
visualization
3