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: 10 days ago
JSON representation
-
Projects
-
JSON
- 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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
REST Frameworks
- 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.
- RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
- Microserver - A 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.
- 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.
- Elide - Opinionated framework for JSON- or GraphQL-APIs based on a JPA data model.
- javalin - Javalin is just a few thousand lines of code on top of Jetty, which means its performance is almost equivalent to pure Jetty.
-
Science
- 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.
- 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.
- Mines Java Toolkit - Library for geophysical scientific computation, visualization and digital signal analysis.
- 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)
- XChart - Light-weight library for plotting data. Many customizable chart types are available.
- JFreeChart - 2D chart library for Swing, JavaFX and server-side applications. (LGPL-2.1-only)
-
Search
- Indexer4j - Simple and light full text indexing and searching library.
- Elasticsearch - Distributed, multitenant-capable, full-text search engine with a RESTful web interface and schema-free JSON documents.
-
Security
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- Themis - Multi-platform high-level cryptographic library provides easy-to-use encryption for protecting sensitive data: secure messaging with forward secrecy, secure data storage (AES256GCM); suits for building end-to-end encrypted applications.
- Bouncy Castle - All-purpose cryptographic library and JCA provider offering a wide range of functions, from basic helpers to PGP/SMIME operations.
- Hdiv - Runtime application that repels application security risks included in the OWASP Top 10, including SQL injection, cross-site scripting, cross-site request forgery, data tampering, and brute force attacks.
- jjwt - JSON web token for Java and Android.
- Jwks RSA - JSON Web Key Set parser.
- Kalium - Binding for the Networking and Cryptography (NaCl) library.
- Keywhiz - System for distributing and managing secrets.
- Nbvcxz - Advanced password strength estimation.
- OACC - Provides permission-based authorization services.
- pac4j - Security engine.
- SecurityBuilder - Fluent Builder API for JCA and JSSE classes and especially X.509 certificates.
- Tink - Provides a simple and misuse-proof API for common cryptographic tasks.
- Vault - Secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. It handles leasing, key revocation, key rolling, and auditing. Through a unified API, users can access an encrypted Key/Value store and network encryption-as-a-service, or generate AWS IAM/STS credentials, SQL/NoSQL databases, X.509 certificates, SSH credentials, and more.
- Keycloak - Integrated SSO and IDM for browser apps and RESTful web services.
-
Serialization
- FlatBuffers - Memory-efficient serialization library that can access serialized data without unpacking and parsing it.
- FST - JDK-compatible, high-performance object graph serialization.
- Kryo - Fast and efficient object graph serialization framework.
- MessagePack - Efficient binary serialization format.
- PHP Serializer - Serializing objects in the PHP serialization format.
-
Server
- nanohttpd - Tiny, easily embeddable HTTP server.
- Jetty - Provides a Web server and javax.servlet container, plus support for HTTP/2, WebSocket, OSGi, JMX, JNDI, JAAS and many other integrations.
- WildFly - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. (LGPL-2.1-only)
-
Template Engine
- Jtwig - Modular, configurable and fully tested template engine.
- Jade4J - Implementation of Pug (formerly known as Jade).
- Rocker - Optimized, memory efficient and speedy template engine producing statically typed, plain objects.
- Handlebars.java - Logicless and semantic Mustache templates.
- Thymeleaf - Aims to be a substitute for JSP and works for XML files.
-
Testing
- GreenMail - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. (GPL-2.0-only)
- Serenity BDD - Automated Acceptance testing and reporting library that works with Cucumber, JBehave and JUnit to make it easier to write high quality executable specifications.
- ConcurrentUnit - Toolkit for testing multi-threaded and asynchronous applications.
- Hoverfly Java - Native bindings for Hoverfly, a proxy which allows you to simulate HTTP services.
-
Programming Languages
Categories
Sub Categories
Twitter
53
Testing
31
Miscellaneous
29
Database
21
REST Frameworks
18
JSON
17
Security
15
Websites
14
Monitoring
14
Utility
13
Awesome Lists
11
Networking
11
CLI
11
Web Frameworks
10
Distributed Applications
10
Bean Mapping
10
Code Analysis
9
Geospatial
9
JVM and JDK
9
Logging
8
Science
8
High Performance
8
Formal Verification
8
HTTP Clients
8
Machine Learning
8
Configuration
8
Bytecode Manipulation
7
Data Structures
7
Functional Programming
7
PDF
7
Development
7
Messaging
7
Dependency Injection
7
Imagery
6
Code Generators
6
Introspection
5
Performance analysis
5
Distribution
5
Serialization
5
Influential Books
5
Natural Language Processing
5
Platform
5
Template Engine
5
Job Scheduling
4
CSV
4
Microservice
4
ORM
4
Web Crawling
4
Financial
4
Document Processing
3
Communities
3
Server
3
Native
3
Code Coverage
3
Distributed Transactions
3
Version Managers
3
Build
3
Date and Time
3
Podcasts and Screencasts
3
Processes
3
Reactive libraries
3
IDE
2
Search
2
Game Development
2
Hypermedia Types
2
GUI
1
Compiler-compiler
1
Caching
1
Constraint Satisfaction Problem Solver
1
Cluster Management
1
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