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
- 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 .
- Spring - Provides many packages for dependency injection, aspect-oriented programming, security, etc.
-
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.
- Reactor - Library for building reactive fast-data applications.
-
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.
- RESTEasy - Fully certified and portable implementation of the JAX-RS specification.
- Dropwizard - Opinionated framework for setting up modern web applications with Jetty, Jackson, Jersey and Metrics.
-
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.
- DataMelt - Environment for scientific computation, data analysis and data visualization. (GPL-3.0-or-later)
- 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.
- Tablesaw - Includes a data-frame, an embedded column store, and hundreds of methods to transform, summarize, or filter data.
- 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.
- Apache Solr - Enterprise search engine optimized for high-volume traffic.
-
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.
-
Programming Languages
Categories
Sub Categories
Twitter
53
Testing
32
Miscellaneous
29
Platform
28
Database
21
REST Frameworks
20
JSON
17
Security
15
Monitoring
14
Websites
14
Utility
13
Web Frameworks
12
Science
11
CLI
11
Awesome Lists
11
Networking
11
Distributed Applications
10
Bean Mapping
10
JVM and JDK
9
Geospatial
9
Code Analysis
9
Configuration
8
Logging
8
High Performance
8
Machine Learning
8
HTTP Clients
8
Bytecode Manipulation
7
Development
7
Data Structures
7
Messaging
7
Formal Verification
7
Functional Programming
7
Dependency Injection
7
PDF
7
Template Engine
6
Imagery
6
Code Generators
6
Introspection
5
Distribution
5
Performance analysis
5
Serialization
5
Influential Books
5
Natural Language Processing
5
Financial
4
Reactive libraries
4
ORM
4
Web Crawling
4
Microservice
4
CSV
4
Job Scheduling
4
Server
3
Communities
3
Document Processing
3
Code Coverage
3
Distributed Transactions
3
Native
3
Search
3
Version Managers
3
Build
3
Date and Time
3
Podcasts and Screencasts
3
Processes
3
IDE
2
Game Development
2
Hypermedia Types
2
Cluster Management
1
Constraint Satisfaction Problem Solver
1
Caching
1
GUI
1
Compiler-compiler
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