Original article: Awesome Java
Awesome List in Qiita
Framework that facilitates bean mapping *
dOOv-Provides an API for validating and mapping type-safe domain models. Using annotations, code generation, and type-safe DSLs. Makes bean validation and mapping quick and easy.
Dozer-A mapper that copies data from one object to another using annotations, APIs or XML settings.
JMapper-Uses bytecode operations for fast code mapping. Supports annotation, API or XML settings.
MapStruct-A code generator that simplifies mapping between different bean types, based on configuration approach conventions.
ModelMapper --ModelMapper is an intelligent object mapping library that automatically maps objects to each other.
Orika-Orika is a Java Bean mapping framework that recursively copies data from one object to another (among other features). To do.
Selma-Stupidly simple, static link mapper. Annotation process based bean mapper.
A tool to handle application build cycles and dependencies *
Apache Maven-Declarative build and dependency management. May be preferred for Apache Ant, which uses a procedural approach and is difficult to maintain.
Bazel-Google's build tool for quick and reliable build of code.
Gradle --Incremental build programmed through Groovy instead of declaring it in XML. Maven dependency management works fine.
A library that manipulates bytecode programmatically *
ASM-General purpose, low level, bytecode manipulation and parsing.
Byte Buddy-Uses a fluent API to further simplify bytecode generation.
bytecode-viewer --Java 8 Jar & Android APK Reverse Engineering Suite. (GPL-3.0 only)
Byteman --Mainly for testing / troubleshooting, bytecode is manipulated by DSL (rules) at runtime. (LGPL-2.1 or later)
cglib --Bytecode generation library.
Javassist-Simplifies bytecode editing.
Mixin-Use real Java code to manage bytecode at runtime.
Perses-Dynamic insertion of failures / latency at the bytecode level according to chaos engineering principles.
Library that provides caching functionality *
cache2k --In-memory high performance caching library.
Caffeine-High performance and optimal caching library.
Ehcache-Distributed generic cache.
Infinispan-High-performance key-value data store for caching.
CLI
All libraries related to CLI *
ASCII Table --A library that can draw tables in ASCII.
Airline-Annotation-based framework that parses command line arguments like Git.
args4j --A small library that parses commands like arguments, similar to javac.
Jansi --ANSI escape code to format console output.
Java ASCII Render-Graphical primitives for console.
JCommander-A framework for parsing command line arguments with custom types and validation by implementing an interface.
jbock-Type-safe and non-reflection, annotation-based command line parser.
Jexer-Advanced Console (and Swing) Text User Interface (TUI) Library. Mouse-drag windows, built-in terminal window manager, and support for sixel images Similar to Turbo Vision.
JLine-Modern Shell with features such as completion and history.
JOpt Simple-A simple parser that uses the POSIX getopt ()
and GNU getopt_long ()
syntax. Using annotations. Instead, use the API.
picocli --ANSI's colors and styles help users in their use. They can also be included as a source to avoid dependencies. Annotation-based, POSIX / GNU / Strong typing for both syntax, subcommands, options and positional arguments.
Text-IO-Helps you create full console based applications.
Lanterna --Console text GUI library similar to curses. (LGPL-3.0 only)
A framework that can dynamically manage applications inside a cluster *
Apache Aurora --Apache Aurora is a Mesos framework for long-running services and cron jobs.
Apache Mesos-Abstracts the machine's CPU, memory, storage, and other computing resources.
Singularity-Singularity is a Mesos framework that makes deployment and operation easy. Supports web services, background workers, scheduled jobs, and one-time tasks. To do.
Tools that provide metrics and quality measurements *
Checkstyle-Coding rules and standard static analysis. (LGPL-2.1 or later)
Error Prone-Detects common programming mistakes as compile-time errors.
Infer-The latest static analysis tool for verifying code accuracy.
jQAssistant --Static code analysis with Neo4J-based query language. (GPL-3.0 only)
NullAway-Eliminate NullPointerExceptions with build-time overhead.
PMD-Source code analysis to find bad coding habits.
SonarJava --Static Analyzer for SonarQube & SonarLint. (GPL-3.0 only)
Sourcetrail![C] --Visual Source Code Navigator.
Spoon --A library for parsing and converting Java source code.
Spotbugs-Static analysis of bytecode to find potential bugs. (GPL-3.0 only)
Frameworks and tools that enable the collection of code coverage metrics for test suites *
Clover-Atlassian's proprietary code coverage tool that relies on source code measurement instead of bytecode measurement.
Cobertura-Relies on offline (or static) bytecode measurement and class loading to collect code coverage metrics. (GPL) -2.0 only)
JaCoCo-A framework that can collect code coverage metrics using both offline and runtime bytecode measurements. A well-known Eclipse code coverage plugin, Used by EclEmma.
A tool that generates patterns of iterative code to reduce redundancy and the possibility of errors *
ADT4J-JSR-269 Code Generator for Algebraic Data Types.
Auto-Generate factory, service, and value classes.
FreeBuilder --Automatic builder pattern generation.
Immutables-Annotation processor that produces simple, secure and consistent value objects.
JavaPoet-API for generating source files.
JHipster --Yeoman source code generator for Spring Boot and AngularJS.
Joda-Beans-A small framework that adds queryable properties to Java and enhances JavaBeans.
Lombok-A code generator aimed at reducing redundancy.
A framework useful for creating parsers, interpreters, and compilers *
ANTLR-A complex, full-featured framework for top-down parsing.
JFlex-Lexical analysis generator.
Library that provides external settings *
centraldogma-Latest configuration library for distributed apps written in Java.
cfg4j-Highly available version control service configuration repository based on Git, ZooKeeper, HTTP / 2.
config --Configuration library for the JVM language.
dotenv-A 12-element library for Java.
ini4j-Provides an API for processing INI files on Windows.
KAConf-Annotation-based configuration system for Java and Kotlin.
owner-Reduce property boilerplate.
A library to help implement optimization and satisfiability issues *
Choco-Using Constraint Programming Techniques, Constraint Satisfiation Problem Solving.
JaCoP-Includes an interface for the FlatZinc language, allowing you to run MiniZinc models. (AGPL-3.0)
OptaPlanner-Business Planning and Resource Scheduling Optimization Solver.
CSV
Frameworks and libraries that simplify reading and writing CSV data *
jackson-dataformat-csv --Reader & Writer for Jsckson Extensions.
opencsv-Simple CSV parser.
Super CSV-A powerful CSV parser that supports Dozer, Joda-Time, Java 8.
uniVocity-parsers-One of the fastest and most feature-rich CSV parsers. It also comes with a TSV and fixed width record parser. Masu.
Simplify interaction with the database *
Apache Drill-Distributed Schema on the Fly ANSI SQL Query Engine for Big Data Exploration.
Apache Phoenix (https://phoenix.apache.org/)-High performance relational database layer on HBase for low latency applications.
AranoDB --ArangoDB Java driver.
Chronicle Map-Efficient in-memory (still stored on disk) off-heap key-value store.
druid-High performance, column oriented, distributed data store.
eXist-NoSQL Document Database and Application Platform. (LGPL-2.1 only)
FlexyPool-Brings metrics and failover strategies to the most common connectivity pooling solutions.
Flyway-A simple database migration tool.
H2-Small SQL database with in-memory features.
HikariCP-High performance JDBC connection pool.
jasync-sql --Asynchronous database driver for MySQL and PostgresSQL.
JDBI --A convenient abstraction of JDBC.
Jedis-Methods for commands and a small client for interacting with Redis.
Jest --Elasticsearch REST API client.
jetcd --etcd client library.
Jinq-Type-safe database reference through symbolic execution of Java 8 Lambdas (above JPA or jOOQ).
jOOQ-Generate type-guaranteed code based on the SQL schema.
Liquibase-A database-independent library for tracking, managing, and applying database schema changes.
MapDB-Embedded database engine that provides parallel collections backed up to disk or off-heap memory.
MariaDB4j-MariaDB launcher that doesn't require installation or external dependencies.
OrientDB --Embedtable distributed database written on Hazlcast.
Presto-Distributed SQL query engine for large data.
Querydsl --Type-safe unified query.
Realm-A mobile database that runs directly on your phone, tablet, or wearable.
Redisson-Allows distributed and scalable data structures on top of Redis servers.
requery-Modern, lightweight yet powerful object mapping and SQL generator. Easy database mapping or database creation from any platform using Java, query And perform updates.
Speedment-A database access library that uses the Java 8 Stream API for queries.
sql2o-A Thin JDBC wrapper that simplifies database access and makes it easy to map ResultSets to POJOs.
Vibur DBCP-JDBD connection pool library that provides advanced performance monitoring capabilities.
Xodus-Parallel transaction schemaless and ACID compliant embedded database.
Efficient and concrete data structure *
Apache Avro-Data exchange formats such as dynamic typing, untagged data, lack of manually assigned IDs.
Apache Orc-Fast and efficient cylindrical storage format for Hadoop-based workloads.
Apache Parquet-A columnar storage format based on the assembly algorithm of Google's Dremel paper.
Apache Thrift-Data exchange format developed by Facebook.
Big Queue-A large, fast, persistent queue based on memory-mapped files.
HyperMinHash-java --Probabilistic data structure for calculating unions, intersections, and cardinal numbers in loglog space.
Persistent Collection-Persistent and immutable Java Collections framework.
Protobuf-Google's data exchange format.
SBE-Simple binary encoding. One of the fastest message formats.
Tape-Ultra-fast, transactional, file-based FIFO.
Wire-Clean and lightweight protocol buffer.
Library that handles date and time *
Almanac Converter-Easily convert between different calendar systems.
iCal4j --iCalendar RFC 5545 Analyzing and building data modules.
ThreeTen-Extra --Additional date and time classes that complement those of JDK 8.
Time4J-Advanced date and time library. (LGPL-2.1 only)
A library that helps implement the Inversion of Control paradigm *
Apache DeltaSpike --CDI extension framework.
Dagger2 --No reflection, compile-time injection framework.
Feather-Ultralight, JSR-330 Compliant Dependency Injection Library.
Guice-A lightweight yet powerful framework that completes Dagger.
HK2-Lightweight and dynamic dependency injection framework.
JayWire-Lightweight Dependency Injection Framework.
Strengthening the development process at the basic level *
AspectJ-Seamless aspect-oriented programming extension.
DCEVM-JVM changes that allow unlimited redefinition of classes loaded at runtime.
Faux Pas --Error handling, avoiding the problem that none of the Java Runtime functional interfaces can throw checked exceptions by default. A library that simplifies.
HotswapAgent-Unlimited runtime classes and resource redefinition.
JavaParser-Dynamic parsing, modifying, and generating Java code.
JavaSymbolSolver-Symbol solver for Java.
JRebel![C]-Immediately reload code and configuration changes without redeploying.
Manifold-A single jar file that reactivates Java with powerful features like Type-safe Metaprogramming, Structural Typing, and Extension Methods.
NoException-Allows checked exceptions in the functional interface and converts exceptions to optional returns.
SneakyThrow-No bytecode manipulation, ignore checked exceptions. Can also be used within Java 8 stream manipulation.
Libraries and frameworks for creating distributed and fault-tolerant applications *
Apache Geode-In-memory data management system that provides reliable asynchronous event notification and guaranteed message delivery.
Apache Storm-Real-time computing system.
Apache ZooKeeper-Distributed configuration, synchronization, and naming registry coordinating service for large distributed systems.
Atomix-Fault-tolerant distributed coordination framework.
Axon Framework-A framework for creating CQRS applications.
Dropwizard Circuit Breaker --Dropwizard circuit breaker design pattern.
Failsafe-Easy fault handling with retries and circuit breakers.
Hazelcast![C]-A scalable in-memory data grid with a free open source version.
JGroups-A toolkit for reliable messaging and clustering.
Orbit-Virtual Actor. Adds another level of abstraction to traditional actors.
Quasar-Lightweight threads and actors for the JVM.
resilience4j --Functional fault tolerance library.
ScaleCube --Embedded cluster --Membership library based on SWIM and gossip protocol.
Zuul-Gateway service that provides dynamic routing, monitoring, restoring force, security and more.
Distributed transactions provide a mechanism to ensure data update consistency in the event of simultaneous access and partial failures. *
Atomikos-Provides REST, SOA and microservices transactions that support JTA and XA.
Bitronix-A simple and complete implementation of the JTA 1.1 API.
Narayana-Supports traditional ACID and transactions and is compliant with JTA, JTS and other standards.
A tool to handle the distribution of native-format applications *
Bintray![C]-Binary version control to handle publishing. It can also be used with Maven and Gradle, open source software and some business plans. There is a free plan for.
Boxfuse![C]-Deploy a JVM application on AWS using the principles of immutable infrastructure.
Capsule-Simple and powerful packaging and deployment. Supports JVM-optimized containers, "Docker for Java".
Central Repository (https://search.maven.org/)-The largest binary component repository available as a free service to the open source community. Used by Apache Maven and available in all other build tools Default.
Cloudsmith![C] --Fully managed, package management SaaS with support for Maven / Gradle / SBT.
IzPack-Setup authoring tool for cross-platform environments.
JitPack![C]-Easy-to-use package repository for GitHub. Build Maven / Gradle projects on demand and publish ready-to-use packages.
Nexus![C]-Binary management with proxy and caching capabilities.
packr-Packs JARs, assets, and JVMs on Windows, Linux, and Mac OS X for native distribution.
really-executable-jars-maven-plugin --Maven plugin for creating self-executable JARs.
A library that supports the processing of office document formats *
Apache POI-Supports OOXML (XLSX, DOCX, PPTX) and OLE2 (XLS, DOC or PPT).
documents4j --API for document format conversion using a third party converter such as MS Word.
docx4j-Creating and manipulating Microsoft Open XML files.
XlsMapper --Read / write excel file. You can also map to Java Beans.
zerocell-Annotation-based API for loading data from Excel sheets into POJOs with a focus on reducing overhead.
Formal method tools: proof assistant, model check, symbolic execution, etc. *
CATG --Concolic unit test engine. Automatically generate unit tests using formal methods.
Checker Framework-Pluggable type system. Includes nullness type, physics unit, immutable type, etc.
Daikon-Daikon can detect invariants in your program and generate JML specifications based on those invariants.
Java Path Finder (JPF) --JVM formal verification tool including model checker etc. Created by NASA.
JMLOK 2.0-Feedback-oriented random test generation detects nonconformities between code and JML specifications, and each nonconformity detected Here are some possible causes:
KeY --The KeY system aims to integrate the design, implementation, formal specifications, and formal verification of object-oriented software as seamlessly as possible, formal software. It is a development tool. It uses JML for specification and symbolic execution for verification.
OpenJML --Converts the JML specification to SMT-LIB format and passes the proof problem implied by the program to the backend solver.
A library that facilitates functional programming *
cyclops-react-monad and stream utilities, commentary, pattern matching, enhancements to all JDK collections, trampolines, etc.
derive4j-Algebraic data type constructors, pattern matching, Java 8 annotation processor and framework for deriving morphs.
Fugue --Guava enhancements.
Functional Java-Implements a number of basic and advanced programming abstractions that support composition-oriented development.
jOOλ-Java 8 extension aimed at fixing lambda gaps. Many missing types and a rich set of Stream APIs Provides additional functionality.
protonpack-A collection of stream utilities.
StreamEx --Extends Java 8 streams.
Vavr-A functional component library that provides persistent data types and functional control structures.
Framework to support game development *
jMonkeyEngine-Game engine for modern 3D game development.
libGDX-All-round cross-platform, high-level framework.
LWJGL-A powerful framework for abstracting libraries like OpenGL / CL / AL.
FXGL --JavaFX game development framework.
Library for geospatial data and algorithms *
Apache SIS-A library for developing geospatial applications.
Geo --GeoHash Utility.
Geotoolkit.org-A library for developing space applications. Built on top of the Apache SIS project.
GeoTools-A library that provides tools for geospatial data.
GraphHopper-Load routing engine. Used as a Java library or standalone web service.
H2GIS-Spatial extension of the H2 database.
Jgeohash-A library to help Java developers use the GeoHash algorithm.
Mapsforge --Map rendering software based on OpenStreetMap data.
Spatial4j-A generic open source Java library with a spatial / geospatial ASL license.
GUI
Library for creating modern graphical user interfaces *
JavaFX --Successor to Swing.
Scene Builder-Visual layout tool for JavaFX applications.
SWT-Standard Widget Toolkit (SWT) is a graphical widget toolkit for use with the Java platform.
Everything about high performance computing from collections to specific libraries *
Agrona-Data structures and utility methods common in high performance applications.
Disruptor-Interthreaded messaging library.
Eclipse Collections-Smalltalk-inspired collection framework.
fastutil-Fast and compact type-specific collection.
HPPC-Primitive collection.
JCTools-Concurrency tools not found in the current JDK.
Koloboke-Hashsets and hashmaps.
A library that helps you create HTTP requests and / or combine responses *
Armeria-Asynchronous RPC / REST client / server library built on Java 8, Netty, HTTP / 2, Thrift, and gRPC.
Async Http Client-Asynchronous HTTP and websocket client library.
Feign --Retrofit, JAXRS-2.0, and WebSocket-inspired HTTP client binder library.
OkHttp HTTP + SPDY client.
Play WS-Type-safe client with reactive strain and caching.
restQL-core-java-Get information from multiple services, microservices query language.
Retrofit-Type-safe REST client.
Ribbon-Client-side IPC library.
Riptide --Client-side response routing for Spring RestTemplate.
unirest-java-Simple and lightweight HTTP client library.
A library that handles serialization to hypermedia types *
JSON-LD --JSON-LD implementation.
Siren4J --Siren specification library.
IDE
Integrated development environment that simplifies development *
Eclipse-Open source project that supports many plugins and languages.
IntelliJ IDEA![C]-Supports many JVM languages and offers options suitable for Android development.
NetBeans (https://netbeans.apache.org/)-Provides integration of Java SE and EE functionality from database access to HTML5.
Visual Studio Code-Uses marketplace extensions to provide Java support for simple, modern workflows.
A library that supports the creation, evaluation, and operation of graphical images *
Imgscalr-A simple and efficient hardware-accelerated image scaling library implemented in pure Java 2D.
Tess4J --JNA wrapper for Tesseract OCR API.
Thumbnailator --Thumbnailator is a high quality thumbnail generation library for Java.
TwelveMonkeys-A collection of plugins that extend the number of supported image file formats.
ZXing --Multi-format 1D / 2D barcode image processing library.
image-comparison-Compare two images of the same size and draw a rectangle to show the visual difference.
--Classgraph --ClassGraph is an ultra-fast, ultra-lightweight, parallelized classpath and module scanner for Java, Scala, Kotlin, and other JVM languages. is. --jOOR --jOOR stands for jOOR Object Oriented Reflection. This is a simple wrapper for the java.lang.reflect package. --Mirror --Mirror was created to bring light to a simple problem named ReflectionUtil. It is for performing advanced tasks. It's in almost every project that relies on reflection. --ReflectASM --ReflectASM is a very small Java library that uses code generation to provide high performance reflection. --Reflections --Reflections scans the classpath, indexes the metadata, allows you to query at runtime, and many modules in your project. You can store and collect information.
JSON
A library for serializing and deserializing JSON with Java objects *
Genson-A powerful and easy-to-use Java to JSON conversion library.
Gson-Serialize objects to JSON and vice versa.
HikariJSON --A high-performance JSON parser that is twice as fast as Jackson.
jackson-modules-java8-A set of Jackson modules for Java 8 data types and features.
Jackson-datatype-money-An open source Jackson module that supports JSON serialization and deserialization of JavaMoney datatypes.
Jackson-Similar to GSON, but with better performance if you need to instantiate the library more often.
JSON-io --Convert Java to JSON, Convert JSON to Java.
jsoniter-A fast and flexible library with iterators and delay analysis APIs.
LoganSquare-JSON parsing and serialization library based on Jackson's streaming API. Better than GSON & Jackson's library.
Moshi-Modern JSON library. Use built-in types such as lists and maps.
Yasson-Binds layers between classes and JSON documents like JAXB.
Library for processing data in JSON format *
fastjson-A very fast processor with no additional dependencies or full data binding.
Jolt --JSON to JSON conversion tool.
JsonPath --Extracts data from JSON using a syntax like XPATH.
JsonSurfer-Streaming JsonPath processor dedicated to processing large and complex JSON data.
Current implementation of JVM / JDK *
Adopt Open JDK --OpenJDK build that allows you to choose between HotSpot and OpenJ9.
Avian --JVM with both JIT and AOT modes. Contains iOS ports.
Corretto-Free distribution of OpenJDK for multi-platform, production by Amazon.
Graal-Polyglot embeddable JVM.
Liberica JDK --Made from OpenJDK, thoroughly tested and passed JCK.
OpenJ9-Enterprise Caliber, a flexibly licensed, openly managed cross-platform Java Virtual Machine from Eclipse OMR and OpenJDK projects, runtime technology. Extend the component.
OpenJDK --Open source implementation for Linux.
ParparVM --VM with non-blocking parallel GC for iOS.
RedHat Open JDK --Distribution of OpenJDK by RedHat.
Zulu --OpenJDK for Windows, Linux, and macOS.
A library that records application behavior *
Apache Log4j 2-Powerful plugins and configuration architecture.
Graylog-Open source aggregator suitable for extended roles and permission management.
Kibana-Analyzes and visualizes log files. Some features are charged.
Logback-Robust logging library with interesting configuration options via Groovy.
Logbook-Extensible open source library for HTTP request and response logging.
Logstash-A tool for managing log files.
p6spy-Enable logging of all JDBC transactions without changing code.
SLF4J-Abstract layer used in the implementation.
tinylog-Lightweight logging framework with static logger classes.
Tracer-Calls the trace-log correlation in a distributed system.
A tool that provides specific statistical algorithms that enable machine learning *
Apache Flink-A fast and reliable large-scale data processing engine.
Apache Mahout-A scalable algorithm focused on collaborative filtering, clustering, and classification.
Apache Spark-Data Analysis Cluster Computing Framework.
DatumBox-Provides several algorithms for natural language processing and a pre-trained model.
DeepDive-Create structured information from unstructured data and integrate it into an existing database.
Deeplearning4j-Distributed multithreaded deep learning library.
H2O-Statistical analysis engine for large-scale data.
JSAT-Algorithms for preprocessing, classification, regression, and clustering with multithreaded execution support.
Oryx 2-To build large-scale real-time machine learning applications, including end-to-end applications for collaborative filtering, classification, regression, and clustering. Framework.
Smile --Statistical Machine Intelligence and Learning Engine provides a set of machine learning algorithms and visualization libraries.
Weka --A collection of algorithms for data mining tasks from preprocessing to visualization.
A tool that helps send messages between clients to ensure protocol independence *
Aeron-Efficient and reliable unicast and multicast message forwarding.
Apache ActiveMQ-A message broker that implements JMS and converts synchronization to asynchronous communication.
Apache Camel-Brings different transport APIs through an enterprise integration pattern.
Apache Kafka-High-throughput distributed messaging system.
Apache Pulsar-Distributed pub / sub messaging system.
Apache RocketMQ-A fast, reliable and scalable distributed messaging platform.
Apache Qpid-Apache Qpid speaks AMQP and creates messaging tools that support many languages and platforms.
Hermes-A fast and reliable message broker built on Kafka.
EventBus-Simple publish / subscribe event bus.
JeroMQ --Implementation of ZeroMQ.
Nakadi-Provides a RESTful API on Kafka.
RabbitMQ Java client --RabbitMQ client.
Smack-Cross-platform XMPP client library.
NATS --NATS client.
Everything else *
Codename One-A cross-platform solution for creating native mobiles.
CQEngine-SQL-like ultra-fast queries against Java collections.
Design Patterns-Implementation and description of the most common design patterns.
Failsafe --Easy fault handling with retries and circuit breakers.
FF4J --Java feature flag.
[FizzBuzz Enterprise Edition](https://github.com/EnterpriseQualityCoding/FizzBuzzEnterprise Edition)-A pointless implementation of FizzBuzz made by serious businessmen for serious business purposes.
J2ObjC-Java to Objective-C translator for porting Android libraries to iOS.
JavaCV --OpenCV, FFmpeg Other Java interfaces.
JavaX-Rethink and extend Java with an emphasis on simplification.
JBake-Static website generator.
JBot-A framework for building chatbots.
Jcuda-JCuda provides Java bindings for CUDA and CUDA-related libraries.
Jimfs --In-memory file system.
Joda-Money-Basic currencies and money classes and algorithms not provided by the JDK.
JPad --Snippet runner.
Maven Wrapper-Maven's Gradle Wrapper allows you to build projects without installing Maven.
Membrane Service Proxy --An open source reverse proxy framework written in Java.
MinimalFTP-Lightweight, small and customizable FTP server.
Modern Java --A Guide to Java 8 --A popular Java 8 guide.
Modernizer-Detects the use of legacy Java APIs.
[Multi-OS Engine]((https://multi-os-engine.org)-Open source cross-platform engine for developing native mobile apps (iOS, Android, etc.).
OpenRefine-Tools for handling cumbersome data. Cleaning, transforming, extending with web services, linking to databases.
PipelinR – A small utility library for using handlers and commands in your pipeline.
Polyglot for Maven-An extension of Maven 3.3.1 + that allows you to write POM models in dialects other than XML.
Smooks-An extensible framework for building applications that process data (binding, transformation, message processing, enrichment).
Togglz-Implementation of functional toggle pattern.
TypeTools-Tools for resolving generic types.
XMLBeam-Processes XML using annotations in your code, or XPath.
OctoLinker-A browser extension that allows you to navigate the code on GitHub more efficiently.
Microservices. That is, tools for managing creation, coordination or discovery *
Apollo-A library for writing configurable microservices.
consul-api-Consul client for distributed and highly available data centers Registry / discovery service
Eureka-REST-based service registry for resilient load balancing and failover.
Helidon-Two styles of approach to writing microservices: Two styles of implementation of Functional-reactive and MicroProfile.
Lagom-A framework for creating microservices-based systems.
Tools for monitoring production applications *
AppDynamics![C] --Performance Monitor.
Automon-A tool for integrating with AOP to monitor or log features.
Failsafe Actuator --Monitoring Failsafe Circuit Breaker in Spring-Boot environment.
BugSnag![C]-Monitoring exceptions and errors due to the integration of several third-party tools.
Glowroot --Open Source Java APM.
inspectIT-Get detailed run-time information via instantly modifiable hooks. Supports tracing on multiple systems using the OpenTracing API, You can associate data with end-user monitoring.
Instrumental![C]-A free development account is also available, a real-time Java application performance monitoring commercial service.
JavaMelody-Performance monitoring and profiling.
Jaeger client --Jaeger client.
jmxtrans-A tool for connecting to multiple JVMs and querying their attributes via JMX. Queries allow non-Java programmers to access the JVM attributes. It is based on JSON so that it can be done, and also supports various inputs and outputs such as Graphite, Ganglia, and StatsD.
Jolokia --REST JMX.
Kamon![C]-A tool for monitoring applications running on the JVM.
Metrics (http://metrics.dropwizard.io/) --You can publish metrics via MX or HTTP and send them to the database.
New Relic![C] --Performance Monitor.
Datadog![C]-Modern monitoring & analysis.
nudge4j-Remote developer console for Java 8 via bytecode injection from a browser.
OverOps![C]-Real-time error monitoring and debugging.
Pinpoint-Open source APM tool.
Prometheus-Provides multidimensional data models, DSLs, autonomous server nodes and more.
SPM![C]-Performance monitor that distributes transaction traces for JVM applications.
Stagemonitor-Open source performance monitoring and transaction tracing for JVM applications.
Sysmon-Lightweight platform monitoring tool for Java VM.
Works with platform-specific native libraries *
JavaCPP-Provides efficient and easy access to native C ++.
JNA-Handle native libraries without writing JNI. It also provides an interface to common system libraries.
JNR-works with native libraries without writing JNI. It also provides an interface to common system libraries. Same goal as JNA. However, it serves as the basis for the future Project Panama.
A library specializing in text processing *
CogCompNLP-Provides a common annotator for plain text input.
CoreNLP-Stanford's CoreNLP provides a set of basic tools for tasks such as tagging, named entity recognition, and sentiment analysis. ..
DKPro-A collection of reusable NLP tools for language preprocessing, machine learning, vocabulary resources, and more.
Lingua-Natural language detection library especially suitable for short paragraphs of text.
LingPipe-A toolkit for a variety of tasks from POS tagging to sentiment analysis.
Library for network programming *
AkkaGRPC-Support for building streaming gRPC servers and clients on top of Akka Streams.
Comsat-Integrates standard Java Web-related APIs into Quasar fiber and actors.
Dubbo-High performance RPC framework.
Finagle-Extensible RPC system used to build highly parallel servers. This is a unified client and server for several protocols. It implements the API and is protocol-independent, which simplifies the implementation of the new protocol.
Grizzly --NIO framework. Used as network layer for Glassfish.
gRPC-RPC framework based on protobuf and HTTP / 2.
KryoNet-Efficient TCP / UDP client / server with NIO and Kryo. It provides a clean and simple API for network communication.
MINA --Abstract event-driven asynchronous I / O API for TCP / IP and UDP / IP network operations via Java NIO.
Netty-A framework for building high-performance network applications.
Nifty-Implementation of Thrift client and server on Netty.
sshj-Programs use SSH, SCP, SFTP.
TLS Channel-Implements the ByteChannel interface on SSLEngine for easy-to-use (socket-like) TLS.
Undertow-A web server that provides both blocking and non-blocking APIs based on NIO. Used as the network layer for WildFly.
urnlib --Java library for expressing, parsing, and encoding URNs, such as RFC 2141.
ORM
API for handling object persistence *
Apache Cayenne-Provides a clean and static API for data access, including a GUI modeler for database mapping, DB reverse engineering, and generation. It is.
Ebean-Provides simple and fast data access.
Doma 2-A database access framework that validates and generates source code at compile time using annotation processing and native SQL templates called "two-way SQL".
EclipseLink-Supports several persistence standards such as JPA, JAXB, JCA, SDO.
Hibernate-Robust and widely used in the active community.
MyBatis-Combine objects with stored procedures or SQL statements.
SimpleFlatMapper-Simple, database and CSV mapper.
PaaS Java Platform as a Service
Useful for creating PDF files *
Apache FOP-Create a PDF from XSL-FO.
Apache PDFBox-A toolbox for creating and manipulating PDFs.
Dynamic Jasper --Abstract layer to JasperReports.
DynamicReports-Simplifies JasperReports.
flyingsaucer --XML / XHTML and CSS 2.1 renderer.
iText![C]-You can programmatically create PDF files, but for commercial purposes you need a license.
JasperReports-Complex reporting engine.
Open HTML to PDF-Correctly supports the latest PDF standards based on flyingsaucer and Apache PDFBox.
Tools for performance analysis, profiling, benchmarking *
fastThread![C]-A free cloud-based upload interface that analyzes and visualizes thread dumps.
GCeasy![C]-A tool for analyzing and visualizing GC logs. Provides a free cloud-based upload interface.
honest-profiler-A sampling profiler with low overhead and no bias.
jHiccup-Record and record platform JVM stalls.
JITWatch --Analyzing JIT compiler optimizations with the HotSpot JVM.
JMH --JMH is written in Java targeting the JVM and other languages, nano / micro / millimeter / A Java harness for building, running, and analyzing macro benchmarks.
JProfiler![C] --Profiler.
LatencyUtils-Utility for measuring and reporting latency.
XRebel![C]-Profiler for web applications.
YourKit Java Profiler![C] --Profiler.
Apache Commons
find
.--ch.vorburger.exec --Convenient API around Apache Commons Exec. --zt-exec --Provides a unified API for Apache Commons Exec and ProcessBuilder. --zt-process-killer --Stop a process started from a Java or system process with a PID.
Library for developing reactive applications *
Akka-Toolkits and runtimes for building simultaneous, distributed, fault-tolerant event-driven applications.
Reactive Streams-Provides a standard for asynchronous stream processing with non-blocking back pressure.
Reactor-A library for building reactive high-speed data applications.
vert.x --Polyglot Event Driven Application Framework.
A framework for creating RESTful services in particular *
Dropwizard-A framework for setting up modern web applications on Jetty, Jackson, Jersey, Metrics.
Elide-An opinionized framework for JSON or GraphQL-API based on the JPA data model.
javalin --Javalin is Jetty with thousands of lines of code added. That is, its performance is about the same as pure Jetty.
Jersey --JAX-RS reference implementation.
Microserver — Convenient and extensible microservices plugin system for Spring & Spring Boot. Over 30 plugins and extensible, micro Supports both monolith and pure microservice styles.
Rapidoid-A simple, secure and very fast framework consisting of a built-in HTTP server, GUI components, and dependency injection.
rest.li-A framework for building robust and scalable RESTful architectures with type-safe bindings and asynchronous non-blocking IO. It provides an end-to-end developer workflow that facilitates clean practices, unified interface design, and consistent data modeling.
RESTEasy-A fully certified and portable implementation of the JAX-RS specification.
RestExpress-A thin wrapper on the JBoss Netty HTTP stack that provides scalability and performance.
Restlet Framework-A pioneering framework with powerful routing and filtering capabilities, an integrated client and server API.
Spark-Sinatra-inspired framework.
Crnk-JSON for building resource-oriented REST endpoints including sorting, filtering, paging, links, object graphs, type safety, bulk updates, integration, etc. Implementation of API specifications.
Library for scientific computing, analysis, and visualization *
DataMelt-Environment for scientific computing, data analysis, data visualization.
Erdos-A modular, light and easy graph theory framework.
GraphStream-Library for modeling and parsing dynamic graphs.
JFreeChart --Swing, JavaFX and 2D chart library for use in server-side applications.
JGraphT-A graph library that provides mathematical graph theory objects and algorithms.
JGraphX-Interaction between the library for visualization (mainly Swing) and node edge graph.
Mines Java Toolkit-Library for geophysical science computation, visualization, and digital signal analysis.
Morpheus-Provides an efficient tabular data structure in a versatile 2D memory called DataFrame for efficiency for scientific calculations on the JVM. Enables in-memory analysis.
Orson-Charts-Generate a variety of 3D charts that can be viewed in Swing and JavaFX, and exported to PDF, SVG, PNG, JPEG Masu.
Tablesaw-Includes data frames, embedded column stores, and hundreds of methods for converting, summarizing, or filtering data.
XChart-Lightweight library for plotting data. Many customizable chart types are available.
Engine for indexing documents for search and analysis *
Apache Lucene-A high-performance, full-featured, cross-platform text search engine library.
Apache Solr-Enterprise search engine optimized for heavy traffic.
Elasticsearch-Distributed multi-tenant full-text search engine with RESTful web interface and schema-free JSON documentation.
Indexer4j-Simple and lightweight full-text indexing and searching library.
A library that handles security, authentication, authorization, or session management *
Apache Shiro-Performs authentication, authorization, encryption, and session management.
Bouncy Castle-Universal Cryptographic Library. A wide range of features from basic helpers to JCA providers and PGP / SMIME operations.
Cryptomator-Multi-platform transparent client-side encryption of files in the cloud.
Hdiv-Runtime application self-defense against OWASP 10 security risks. Uncertain direct object reference, SQL injection, cross-site scripting (XSS), cross-site request Counterfeit (CSRF) etc.
jjwt --JSON Web Token for Java and Android.
Jwks RSA --JSON Web Key Set parser.
Kalium-Binding to networking and encryption (NaCl) libraries.
Keycloak-Integrated SSO and IDM for browser apps and RESTful web services.
Keyczar-An easy-to-use and secure cryptographic framework with key versioning.
Keywhiz-System for secret distribution and management.
Nbvcxz-Advanced password strength estimation.
OACC-Provides authorization-based authorization services.
pac4j --Security engine.
SecurityBuilder (https://github.com/tersesystems/securitybuilder)-Fluent Builder API for JCA and JSSE classes, especially X.509 certificates.
Themis-A multi-platform, high-level encryption library that provides easy-to-use encryption to protect your secret data. Forward secret secure. Messaging, secure data storage (AES256GCM). Suitable for building end-to-end cryptographic applications.
Tink-Provides a simple, misuse-free API for common cryptographic tasks.
Vault (https://www.vaultproject.io)-Protects, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. Leases, key revocations. Handles key rolling, and auditing. By using a unified API, users can access the encrypted Key / Value store to perform network encryption as a service, or AWS IAM / STS. It can generate credentials, SQL / NoSQL databases, X.509 certificates, SSH credentials and more.
A library that handles serialization with high efficiency *
FlatBuffers-A memory-efficient serialization library that allows you to decompress and access serialized data without parsing it.
FST --JJ-compatible high performance object graph serialization.
Kryo-Fast and efficient object graph serialization framework.
MessagePack-Efficient binary serialization format.
PHP Serializer-Serialize objects in PHP serializer format.
Server used to deploy the application *
Apache Tomcat-A powerful all-round server for Servlets and JSPs.
Apache TomEE - Tomcat + Java EE.
Jetty-Lightweight, small server, often included in projects.
nanohttpd-Small, easy-to-embed HTTP server.
WebSphere Liberty![C]-A lightweight, modular server developed by IBM.
WildFly-Extensive Java EE support, formerly known as JBoss, developed by Red Hat.
A tool to replace expressions in templates *
Handlebars.java-Logicless and semantic Mustache template.
Jtwig-A modular, configurable, fully tested template engine.
Jade4J --Implementation of Jade.
Pebble-Twig-inspired, with inheritance and easy-to-read syntax. Automatic escaping for security, integrated support for internationalization contained.
Rocker-An optimized, memory-efficient, speedy template engine that produces statically typed plain objects.
Thymeleaf --Handling common XML files with the aim of being a substitute for JSP.
BDD
Strongly influenced by DDD and OOAD, testing for the TDD software development process. *
Cucumber --BDD test framework.
Cukes-REST-A collection of Gherkin steps for REST service testing with Cucumber.
J8Spec-A library that allows tests written in Java to follow the BDD style introduced by RSpec and Jasmine.
JBehave-A framework for behavior-driven development.
JGiven-Compatible with JUnit and TestNG, a developer-friendly BDD testing framework.
Lambba Behave --Descriptive behavior specification framework.
Serenity BDD-Automatic acceptance testing and reporting library that works with Cucumber, JBehave, and JUnit to make it easy to write high-quality executable specifications.
All related to the creation and processing of random data. *
Beanmother --Set the bean from the YAML fixture.
Fixture Factory --Create a pseudo object from a template.
JFairy --Fake data generator.
Randomized Testing-JUnit test runners and plugins for running JUnit tests with pseudo-randomness.
Java Faker-Ruby fake generator port.
Provides an environment for running tests for specific use cases. *
ArchUnit-Architecture test library, architecture rule specification and assertion.
Apache JMeter-Functional testing and performance measurement.
Arquillian-Java EE container integration and functional testing platform.
Citrus-An integration testing framework focused on client and server-side messaging.
Gatling-Load test tool designed for ease of use, maintainability, and high performance.
JUnit-Universal testing framework.
PIT-A fast mutation testing framework for assessing failure detection capabilities of existing JUnit or TestNG test suites.
Pact JVM-Consumer-led contract testing.
Library that provides custom matchers. *
AssertJ-A fluent assertion that improves readability.
JSONAssert-Simplifies testing JSON strings.
Truth-Google Assertion and Proposition Framework.
XMLUnit-Simplifies testing of XML output.
Others, related to testing. *
junit-dataprovider-Data provider runner like TestNG for JUnit.
Mutability Detector-Reports whether an instance of the specified class is immutable.
raml-tester-Tests if the request / response matches the specified RAML definition.
TestContainers-Provides a general database, Selenium web browser, or anything else that can be run in a Docker container.
pojo-tester --Automatically runs tests for basic POJO methods.
A tool to mock collaborators to test one independent unit. *
JMockit --Mock static methods, final methods, etc.
Mockito --Create a test double object with automated unit tests for TDD or BDD.
MockServer-Mocking the system integrated with HTTP / S.
Moco-A concise web service for stubs and mocking. Duke's Choice Award 2013.
PowerMock-Allows you to remove static methods, constructors, final classes and methods, private methods, static initializers.
WireMock-Stub and mock web services.
Library that provides general utility functions *
bucket4j-A rate limiting library based on the token bucket algorithm.
cactoos-A collection of object-oriented primitives.
CRaSH-Provides a shell to the JVM running CRaSH, such as in Spring Boot.
Dex-Java / JavaFX tools with powerful ETL and data visualization.
Embulk-A bulk data loader that helps transfer data between various databases, storage, file formats, and cloud services.
Gephi-Cross-platform for visualizing and manipulating large graph networks.
Guava-Collection, Caching, Primitive Support, Concurrency Library, Common Annotations, String Processing, I / O, etc.
JADE-Framework and environment for building and debugging multi-agent systems.
JavaVerbalExpressions-A library to help you create difficult regular expressions.
JGit-Lightweight, pure Java, Git version control system library.
minio-java-Provides a simple API for accessing Amazon S3-compatible object storage servers.
Protégé-Provides an ontology editor and framework for building knowledge-based systems.
Underscore-java-Port of function of Underscore.js.
Utility to help set up the development shell environment and switch between different Java versions. *
jabba --Java version manager inspired by nvm. Supports Mac OS X, Linux, Windows.
jenv-Java version manager inspired by benv. Can be configured globally or per project. Tested on Debian and Mac OS X.
SDKMan --Java version manager inspired by RVM and rbenv. Supports UNIX-based platforms and Windows.
A library that analyzes website content *
Apache Nutch-Provides a highly scalable and scalable web crawler for production environments.
Crawler4j-Simple and lightweight web crawler.
jsoup-Scrapes, parses, manipulates, and erases HTML.
StormCrawler-SDK for building low latency and scalable web crawlers.
Framework for handling communication between layers of web applications *
Apache Tapestry-A dynamic, robust, extensible, component-oriented framework for creating web applications.
Apache Wicket-A component-based web application framework similar to Tapestry with a stateful GUI.
Blade-An elegant, simple, lightweight and modular framework.
Bootique-Minimal framework for executable applications.
Firefly-Asynchronous framework for rapid high performance web application development.
Grails-A Groovy framework that aims to provide a productive environment by prioritizing conventions over configuration and supporting XML and mixins.
Jooby-A scalable, fast and modular micro-framework that provides multiple programming models.
Ninja --Full stack web framework.
Pippo-Small and highly modular framework like Sinatra.
Play-Uses rules for browser settings, hotcode reloading, and error display.
PrimeFaces-JSF framework that supports free commercial versions. Provides some front-end components.
Ratpack-A set of libraries that are fast, efficient, well-tested, and facilitates HTTP applications.
Takes-An opinion-based web framework built on the concept of true object-oriented programming and immutablity.
Vaadin Flow (https://vaadin.com/flow)-An event-driven framework that uses standard web components. A server-side architecture with Ajax on the client side.
Awesome Lists
A great list of Java / JVM ecosystems *
Lively discussion *
r / java --Java community subledge.
stackoverflow-Question / Answer Platform.
VirtualJUG --Virtual Java User Group.
Awesome Java website (* not official website) *
Worth reading, influential books *
Things to see and listen to during programming *
Marco Behler's Screencasts-Screencasts for modern Java developers.
The Java Posse - Discontinued as of 02/2015.
Recommended to follow, active Twitter account *
Adam Bien - Freelancer: Author, JavaONE Rockstar Speaker, Consultant, Java Champion.
Aleksey Shipilëv - Performance Geek, Benchmarking Tzar, Concurrency Bug Hunter.
Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
Brian Goetz - Java Language Architect at Oracle.
Bruno Borges - Product Manager/Java Jock at Oracle.
Ed Burns - Consulting Member of the Technical Staff at Oracle.
Eugen Paraschiv - Author of the Spring Security Course.
Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
James Weaver - Java/JavaFX/IoT developer, author and speaker.
Java EE - Official Java EE Twitter account.
Java Magazine - Official Java Magazine account.
Java - Official Java Twitter account.
Javin Paul - Well-known Java blogger.
Lukas Eder-JavaChampion,speaker,JUG.chco-leader,FounderandCEODataGeekery(jOOQ).
Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
Markus Eisele - Java EE evangelist, Red Hat.
Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
Martin Thompson - Pasty faced performance gangster.
OpenJDK - Official OpenJDK account.
Peter Lawrey - Peter Lawrey, Java performance expert.
Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
Sander Mak - Java Champion, author.
Simon Maple - Java Champion, virtualJUG founder, LJC leader, RebelLabs author.
Stephen Colebourne - Java Champion, speaker.
Trisha Gee - Java Champion and speaker.
Sites that are useful to read *
Recommended Posts