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: 2 days ago
JSON representation
-
Projects
-
Introspection
- 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
- 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.
-
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.
- Lagom - Framework for creating microservice-based systems.
-
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.
- JBot - Framework for building chatbots. (GPL-3.0-only)
- Joda-Money - Basic currency and money classes and algorithms not provided by the JDK.
-
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.
- Grizzly - NIO framework. Used as a network layer in Glassfish.
- Nifty - Implementation of Thrift clients and servers on Netty.
-
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.
- Ebean - Provides simple and fast data access.
- EclipseLink - Supports a number of persistence standards: JPA, JAXB, JCA and SDO.
- Hibernate - Robust and widely used, with an active community. (LGPL-2.1-only)
- MyBatis - Couples objects with stored procedures or SQL statements.
-
PaaS
- AWS Elastic Beanstalk .
- 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.
-
Programming Languages
Categories
Sub Categories
Twitter
67
Testing
42
Platform
39
Miscellaneous
32
Database
22
REST Frameworks
20
JSON
17
Monitoring
16
Security
15
Web Frameworks
14
Websites
14
Utility
14
CLI
13
Networking
13
Awesome Lists
11
Science
11
Distributed Applications
10
Bean Mapping
10
Code Analysis
9
JVM and JDK
9
Geospatial
9
Configuration
8
ORM
8
Machine Learning
8
Logging
8
HTTP Clients
8
Functional Programming
8
Formal Verification
8
PDF
8
High Performance
8
Dependency Injection
7
Bytecode Manipulation
7
Data Structures
7
Messaging
7
Performance analysis
7
Template Engine
7
Development
7
Web Crawling
6
Distribution
6
Code Generators
6
Imagery
6
Microservice
5
Server
5
Introspection
5
Influential Books
5
Serialization
5
Natural Language Processing
5
Financial
4
Date and Time
4
Reactive libraries
4
CSV
4
Job Scheduling
4
Native
3
Cluster Management
3
Document Processing
3
Communities
3
IDE
3
Code Coverage
3
Distributed Transactions
3
Version Managers
3
Search
3
Build
3
Processes
3
Podcasts and Screencasts
3
Game Development
2
Hypermedia Types
2
GUI
1
Compiler-compiler
1
Caching
1
Constraint Satisfaction Problem Solver
1
PaaS
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