Java libraries
74 libraries across 13 topics
74 libraries
Spring Boot
The default way to build a Java service — auto-configuration over a vast, mature ecosystem.
Web & HTTP5 examplesSpring Security
Spring Security is a powerful and highly customizable framework for authentication, authorization, and protection against common security threats in Java applications.
Security5 examplesHibernate
The JPA implementation that defined ORM on the JVM.
Data & Analytics6 examplesJackson
The JSON library the JVM ecosystem standardised on.
Web & HTTP6 examplesGson
Gson is a Java library by Google for converting Java objects to JSON and vice versa. It supports serialization and deserialization of Java objects, including collections, generics, and nested objects.
Web & HTTP6 examplesOkHttp
The HTTP client behind most JVM and Android networking, including Retrofit's.
Web & HTTP6 examplesRetrofit
Retrofit is a type-safe HTTP client for Java and Android, developed by Square. It allows you to define REST API endpoints as Java interfaces and automatically converts HTTP responses into Java objects using converters like Gson or Jackson.
Web & HTTP6 examplesFeign
Feign is a declarative HTTP client for Java, primarily used with Spring Cloud to simplify REST API calls. It allows developers to define API clients using interfaces and annotations.
Web & HTTP6 examplesMapStruct
MapStruct is a Java annotation processor for generating type-safe and performant mappers that automatically convert between Java beans (DTOs and entities).
Developer Utilities6 examplesLombok
Annotations that generate boilerplate — getters, builders, constructors — at compile time.
Developer Utilities7 examplesSLF4J
SLF4J (Simple Logging Facade for Java) is a logging abstraction that allows developers to plug in various logging frameworks such as Logback, Log4j, or java.util.logging without changing application code.
Developer Utilities5 examplesLog4j2
High-performance logging with async appenders and structured output.
Developer Utilities6 examplesJUnit 5
The JVM's standard testing framework, rebuilt around an extension model.
Testing6 examplesMockito
Mocking for unit tests, with an API that stays readable.
Testing6 examplesAssertJ
AssertJ is a fluent and rich assertion library for Java that allows developers to write readable and expressive unit test assertions. It provides a wide variety of assertions for core Java types, collections, exceptions, and more.
Testing6 examplesTestcontainers
Real databases, brokers and services in Docker containers, started by your tests.
Testing6 examplesVert.x
Vert.x is a toolkit for building reactive, non-blocking, and polyglot applications on the JVM. It supports asynchronous programming, event-driven architecture, and high-performance microservices.
Web & HTTP6 examplesMicronaut
Micronaut is a modern, JVM-based framework for building modular, easily testable microservices and serverless applications. It emphasizes low memory footprint, fast startup time, and dependency injection with compile-time optimizations.
Web & HTTP6 examplesQuarkus
A Java stack built for containers — fast startup, low memory, first-class native compilation.
Web & HTTP6 examplesApache Kafka
Distributed event log for streaming data between systems at scale.
Data & Analytics6 examplesNetty
Asynchronous network application framework — the engine under a great deal of JVM infrastructure.
Web & HTTP6 examplesJersey
Jersey is the reference implementation of JAX-RS (Java API for RESTful Web Services) for building RESTful web services in Java. It simplifies creating web services with annotations, dependency injection, and automatic JSON/XML support.
Web & HTTP6 examplesRestEasy
RestEasy is a JAX-RS implementation for building RESTful web services in Java. It provides tools to create REST APIs easily with annotations, dependency injection, exception handling, and integrates well with JBoss/WildFly or standalone servlet containers.
Web & HTTP6 examplesApache CXF
Apache CXF is a framework for building robust web services in Java. It supports both RESTful (JAX-RS) and SOAP-based (JAX-WS) services, providing tools for service creation, client generation, and integration with various transports and data bindings.
Web & HTTP6 examplesMyBatis
MyBatis is a persistence framework that simplifies working with relational databases in Java. Unlike full ORM frameworks, it focuses on mapping SQL queries to Java objects, giving developers control over SQL while reducing boilerplate code.
Databases & Caching6 examplesjOOQ
jOOQ (Java Object Oriented Querying) is a fluent API for typesafe SQL query construction in Java. It allows developers to write SQL in a natural, type-checked way while mapping results directly to Java objects, combining the flexibility of SQL with the safety of Java.
Databases & Caching6 examplesGuava
Google's core Java libraries — collections, caching, primitives and utilities.
Developer Utilities7 examplesApache Commons Lang
Apache Commons Lang provides a host of helper utilities for the java.lang API, making everyday Java development easier. It includes functionality for String manipulation, object reflection, concurrency, number handling, date/time, and more.
Developer Utilities6 examplesApache Commons IO
Apache Commons IO provides utilities for working with Java I/O, including file and directory manipulation, file filters, input/output stream handling, and file monitoring. It simplifies common I/O operations and reduces boilerplate code.
Developer Utilities6 examplesApache Commons Collections
Apache Commons Collections extends the Java Collections Framework with additional interfaces, implementations, and utilities for manipulating and transforming collections. It includes features like Bag, MultiMap, BidiMap, and advanced iterators.
Developer Utilities6 examplesApache Commons Configuration
Apache Commons Configuration provides a unified API for accessing configuration data from various sources, including properties files, XML, INI, JSON, and databases. It supports hierarchical configurations, automatic reloading, and combined configuration sources.
Developer Utilities6 examplesGoogle Guice
Google Guice is a lightweight dependency injection framework for Java. It allows you to manage object creation and dependencies declaratively using annotations, reducing boilerplate and promoting loose coupling.
Developer Utilities6 examplesApache HttpClient
Apache HttpClient is a robust and feature-rich HTTP client library for Java. It allows sending HTTP requests, handling responses, managing connections, cookies, authentication, and supporting advanced features like redirects and timeouts.
Web & HTTP6 examplesJakarta Mail (JavaMail)
Jakarta Mail (formerly JavaMail) is a Java API for sending, receiving, and managing email messages using protocols such as SMTP, IMAP, and POP3. It provides a simple interface for building email applications and integrating email functionality into Java applications.
Developer Utilities5 examplesFlyway
Flyway is an open-source database migration tool for Java that allows developers to version, manage, and automate database schema changes. It supports SQL-based migrations as well as Java-based migrations for complex transformations.
Databases & Caching5 examplesRxJava
RxJava is a Java library for composing asynchronous and event-based programs using observable sequences. It provides powerful operators for managing concurrency, data streams, and transformations in a functional style.
Networking & Concurrency6 examplesProject Reactor
Project Reactor is a reactive library for building non-blocking, asynchronous, and event-driven applications on the JVM. It provides types like Mono and Flux to handle zero-to-one and zero-to-many reactive sequences respectively, following the Reactive Streams specification.
Networking & Concurrency7 examplesRabbitMQ Java Client
RabbitMQ Java Client is a Java library for interacting with RabbitMQ, a message broker that implements the Advanced Message Queuing Protocol (AMQP). It enables applications to send, receive, and process messages asynchronously and reliably.
Messaging & Streaming5 examplesActiveMQ
Apache ActiveMQ is a popular open-source message broker that implements JMS (Java Message Service). The ActiveMQ Java Client library allows Java applications to send, receive, and process messages asynchronously and reliably across distributed systems.
Messaging & Streaming5 examplesRedisson
Redisson is a Java client for Redis that provides a high-level, distributed Java data structures framework. It allows Java applications to interact with Redis using objects, collections, locks, atomic variables, and other advanced features in a thread-safe and cluster-aware manner.
Databases & Caching6 examplesArquillian
Arquillian is a powerful testing platform for Java that simplifies integration and functional testing of Java EE and Jakarta EE applications. It allows developers to execute tests inside real runtime containers rather than mocks, ensuring realistic behavior and deployment conditions.
Testing4 examplesWireMock
WireMock is a flexible and powerful Java library for mocking HTTP services. It allows developers to stub, simulate, and test interactions with external APIs, enabling reliable and isolated testing of client code without depending on real external services.
Testing6 examplesAwaitility
Awaitility is a Java DSL (Domain Specific Language) for testing asynchronous code. It allows developers to wait for a certain condition to be met within a specified time period, making testing of async operations, background tasks, or event-driven systems more reliable and readable.
Testing5 examplesApache Maven
Apache Maven is a powerful build automation and project management tool for Java and other JVM-based languages. It provides a uniform build system, dependency management, and a project object model (POM) to define project structure, plugins, and external libraries.
Build & Packaging7 examplesGradle
Gradle is a modern build automation tool for Java, Kotlin, and other JVM-based languages. It provides a flexible, high-performance build system with support for dependency management, multi-project builds, and incremental compilation, making it ideal for complex enterprise projects.
Build & Packaging7 examplesApache Shiro
Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. It simplifies securing applications by providing a flexible and intuitive API.
Security6 examplesJava JWT (JJWT)
Java JWT libraries provide tools for creating, parsing, and validating JSON Web Tokens (JWT) in Java applications. They are widely used for implementing stateless authentication, secure token-based authorization, and claims-based identity management.
Security5 examplesFastUtil
FastUtil is a Java library that provides fast and memory-efficient collections for primitive types, including maps, sets, lists, and more. It offers specialized implementations that avoid the overhead of boxing/unboxing primitive types, improving performance in high-throughput applications.
Developer Utilities6 examplesLogback
Logback is a popular Java logging framework intended as a successor to Log4j. It provides powerful configuration options, fast performance, and a rich set of appenders and layouts for logging messages in various formats and destinations.
Observability5 examplesMicrometer
Micrometer is a metrics instrumentation library for Java applications that provides a vendor-neutral interface for capturing application metrics and exposing them to monitoring systems. It supports counters, gauges, timers, distribution summaries, and more.
Observability6 examplesProtocol Buffers (Protobuf)
Protocol Buffers (Protobuf) is a language-neutral, platform-neutral, and extensible mechanism for serializing structured data. It is used to efficiently encode data for communication between services, storage, or configuration in Java applications.
Messaging & Streaming6 examplesApache Avro
Apache Avro is a data serialization system that provides compact, fast, and binary data serialization for Java and other languages. It is widely used in big data ecosystems for storing and transmitting structured data efficiently.
Serialization & Formats6 examplesJetty
Jetty is a lightweight, high-performance Java HTTP server and servlet container. It provides an embedded web server, making it easy to integrate into Java applications for serving web content, REST APIs, or acting as a backend server.
Web & HTTP5 examplesApache HttpComponents
Apache HttpComponents is a set of Java libraries for client-side and server-side HTTP communication. The most commonly used module is HttpClient, which provides a robust and flexible API for sending HTTP requests and handling responses.
Web & HTTP6 examplesSpring Cloud
Spring Cloud provides a suite of tools for building distributed systems and microservices in Java. It integrates with Spring Boot to offer service discovery, configuration management, load balancing, circuit breakers, messaging, and cloud-native patterns.
Developer Utilities6 examplesConsul / Eureka Clients
Consul and Eureka are popular service discovery tools for microservices. Java clients integrate applications with these services, enabling automatic registration, service lookup, and health monitoring for distributed systems.
Developer Utilities5 examplesApache POI
Apache POI is a Java library for reading and writing Microsoft Office file formats, including Excel, Word, and PowerPoint. It enables Java applications to manipulate spreadsheets, documents, and presentations programmatically.
Documents & Files6 examplesiText / PDFBox
iText and Apache PDFBox are Java libraries for creating, manipulating, and reading PDF documents. They allow developers to generate dynamic PDFs, extract content, fill forms, merge or split documents, and manage metadata programmatically.
Documents & Files6 examplesJsoup
Jsoup is a Java library for working with real-world HTML. It provides a convenient API for fetching URLs, parsing HTML, extracting and manipulating data, and cleaning user-submitted content to prevent XSS attacks.
Serialization & Formats6 examplesQuartz
Quartz is a powerful and widely used Java library for scheduling and executing jobs. It allows developers to define tasks, schedule them with cron-like expressions or fixed intervals, and manage job execution in enterprise applications.
Developer Utilities5 examplesEhcache / Caffeine
Ehcache and Caffeine are Java caching libraries that improve application performance by storing frequently accessed data in memory, reducing expensive database or API calls. They support in-memory and optionally persistent caching with flexible eviction and expiration policies.
Databases & Caching6 examplesMapDB
MapDB is an embedded Java database and caching library that provides fast, concurrent, and off-heap key-value storage. It supports maps, sets, queues, and other collections with optional persistence to disk or memory-mapped files.
Databases & Caching5 examplesApache Ignite
Apache Ignite is a distributed in-memory data grid and caching platform for Java. It provides high-performance key-value storage, SQL querying, ACID transactions, compute grid, and integration with other data sources.
Databases & Caching5 examplesHazelcast
Hazelcast is a distributed in-memory data grid and caching platform for Java. It provides high-performance storage for key-value data, distributed maps, queues, topics, and support for distributed computing, clustering, and transactions.
Databases & Caching5 examplesJavaCV / OpenCV Java
JavaCV provides Java bindings for OpenCV and other computer vision libraries, allowing developers to process images and videos, detect objects, and apply advanced computer vision algorithms in Java applications.
AI & Machine Learning6 examplesDeeplearning4j (DL4J)
Deeplearning4j (DL4J) is an open-source, distributed deep learning library for Java and JVM-based languages. It allows building, training, and deploying neural networks for tasks like image recognition, NLP, time series analysis, and more.
AI & Machine Learning5 examplesND4J
ND4J (N-Dimensional Arrays for Java) is a scientific computing library for the JVM, providing high-performance n-dimensional arrays, linear algebra operations, and GPU acceleration. It serves as the foundation for Deeplearning4j and other Java-based ML frameworks.
AI & Machine Learning6 examplesWeka
Weka is a collection of machine learning algorithms for data mining tasks in Java. It provides tools for classification, regression, clustering, association rule mining, and data preprocessing, with both a GUI and programmatic API.
AI & Machine Learning6 examplesMOA (Massive Online Analysis)
MOA is an open-source Java framework for data stream mining. It provides tools for classification, regression, clustering, and concept drift detection on high-speed streaming data.
AI & Machine Learning6 examplesApache Flink
Apache Flink is a powerful open-source framework for distributed stream and batch data processing. Flink ML provides machine learning libraries for building scalable models on streaming and batch data.
Messaging & Streaming6 examplesApache Spark
Apache Spark is an open-source distributed computing system for big data processing. Spark MLlib provides scalable machine learning algorithms for classification, regression, clustering, and collaborative filtering, usable in Java, Scala, and Python.
Data & Analytics6 examplesApache Beam
Apache Beam is an open-source unified programming model for defining and executing data processing pipelines, both batch and streaming. It provides Java, Python, and Go SDKs and can run on multiple runners like Flink, Spark, and Dataflow.
Messaging & Streaming5 examplesApache Camel
Apache Camel is a versatile open-source integration framework that provides routing and mediation rules for connecting different systems. It implements Enterprise Integration Patterns (EIPs) and supports hundreds of components for various protocols and data formats.
Developer Utilities6 examplesApache NiFi
Apache NiFi is an open-source data integration and automation tool for designing, managing, and monitoring data flows. It supports real-time data ingestion, routing, transformation, and delivery between systems.
Data & Analytics6 examples
Coverage by topic
What the Java ecosystem is deepest in — a reasonable proxy for what the language is used for.
- Developer Utilities16
- Web & HTTP16
- Databases & Caching8
- Testing7
- AI & Machine Learning5
- Messaging & Streaming5
- Data & Analytics4
- Security3
- Build & Packaging2
- Documents & Files2
- Networking & Concurrency2
- Observability2
- Serialization & Formats2

