A curated List of useful or interesting libraries for Java programming.
Name | Description | URL |
---|---|---|
Akka | Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala. | https://akka.io |
Akka HTTP | The Akka HTTP modules implement a full server- and client-side HTTP stack on top of akka-actor and akka-stream. | https://doc.akka.io/docs/akka-http/current |
Akka Stream | The purpose is to offer an intuitive and safe way to formulate stream processing setups such that we can then execute them efficiently and with bounded resource usage—no more OutOfMemoryErrors. | https://doc.akka.io/docs/akka/current/stream |
Alpakka | The Alpakka project is an open source initiative to implement stream-aware and reactive integration pipelines for Java and Scala. | https://doc.akka.io/docs/alpakka/current |
Apache HTTPComponents | The Apache HttpComponents project is responsible for creating and maintaining a toolset of low level Java components focused on HTTP and associated protocols. | https://hc.apache.org |
Apache Log4j | Java logging framework | https://logging.apache.org/log4j |
Apache POI | The Java API for Microsoft documents | https://poi.apache.org |
Apache Pulsar Java client | You can use a Pulsar Java client to create the Java producer, consumer, readers and TableView of messages and to perform administrative tasks. | https://pulsar.apache.org/docs/client-libraries-java |
Apache Tika | The Apache Tika™ toolkit detects and extracts metadata and text from over a thousand different file types (such as PPT, XLS, and PDF). | https://tika.apache.org |
Apache Xerces | The Apache Xerces™ Project is responsible for software licensed to the Apache Software Foundation intended for the creation and maintenance of XML parsers and related software components | https://xerces.apache.org |
AsciidoctorJ | Java bindings for Asciidoctor. Asciidoctor on the JVM! http://asciidoctor.org | https://github.com/asciidoctor/asciidoctorj |
async-http-client | Asynchronous Http and WebSocket Client library for Java | https://github.com/AsyncHttpClient/async-http-client |
AWS SDK for Java | Develop and deploy applications with the AWS SDK for Java. The SDK makes it easy to call AWS services using idiomatic Java APIs. | https://aws.amazon.com/sdk-for-java |
Azure SDK for Java | Develop and deploy applications with the Azure SDK for Java. | https://azure.github.io/azure-sdk-for-java |
Checker Framework | The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins. | https://checkerframework.org |
config | configuration library for JVM languages using HOCON files | https://github.com/lightbend/config |
Dom4j | Flexible XML framework for Java. | https://dom4j.github.io |
Dropwizard | Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services. | https://dropwizard.io |
Eclipse MicroProfile | Optimizing Enterprise Java for a Microservices Architecture | https://microprofile.io |
Functional Java | Functional Java is an open source library facilitating functional programming in Java. The library implements numerous basic and advanced programming abstractions that assist composition oriented development. | https://www.functionaljava.org |
Google Cloud Java Client Libraries | The Cloud Client Libraries are the recommended way to access Google Cloud APIs programmatically. | https://cloud.google.com/java/docs/reference |
GraphQL Java | The Java implementation of GraphQL | https://www.graphql-java.com |
grpc | A high performance, open source universal RPC framework | https://www.grpc.io |
gson | A Java serialization/deserialization library to convert Java Objects into JSON and back | https://github.com/google/gson |
guava | Google core libraries for Java | https://github.com/google/guava |
guice | Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 8 and above, brought to you by Google. | https://github.com/google/guice |
iText | The leading PDF library for developers | https://itextpdf.com |
jackson | Jackson has been known as "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java". More than that, Jackson is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, (Java) Properties, Protobuf, TOML, XML or YAML; and even the large set of data format modules to support data types of widely used data types such as Guava, Joda, PCollections and many, many more (see below). | https://github.com/FasterXML/jackson |
Jakarta Messaging (JMS) | Jakarta Messaging™ is a Java Message Oriented Middleware API for sending messages between two or more clients. It is a programming model to handle the producer-consumer messaging problem. | https://projects.eclipse.org/projects/ee4j.messaging |
Java Hamcrest | Matchers that can be combined to create flexible expressions of intent | http://hamcrest.org/JavaHamcrest |
JAXB | Java architecture for XML binding | https://javaee.github.io/jaxb-v2 |
JAXP | Java API for XML processing | https://www.oracle.com/java/technologies/jaxp-introduction.html |
jsoup | jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors. | https://jsoup.org |
jUnit | Java unit testing framework | https://junit.org |
Lombok | Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your Java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. | https://projectlombok.org |
Micronaut | A modern, JVM-based, full-stack framework for building modular, easily testable microservice and serverless applications | https://micronaut.io |
mockito | Tasty mocking framework for unit tests in Java | https://site.mockito.org |
MockServer | Easy mocking of any system you integrate with via HTTP or HTTPS | https://mock-server.com |
Neo4j | The Graph Data Platform for Today's Intelligent Applications | https://neo4j.com |
OkHttp | OkHttp is an HTTP client that’s efficient by default: HTTP/2 support allows all requests to the same host to share a socket. Connection pooling reduces request latency (if HTTP/2 isn’t available). Transparent GZIP shrinks download sizes. Response caching avoids the network completely for repeat requests. | https://square.github.io/okhttp |
Protocol Buffers | Protocol buffers provide a language-neutral, platform-neutral, extensible mechanism for serializing structured data in a forward-compatible and backward-compatible way. It’s like JSON, except it's smaller and faster, and it generates native language bindings. | https://developers.google.com/protocol-buffers/docs/overview |
Quarkus | A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards. | https://quarkus.io |
retrofit | A type-safe HTTP client for Android and Java | https://square.github.io/retrofit |
SLF4J | Simple Logging Facade for Java (SLF4J) | https://www.slf4j.org |
Spock | Spock is a testing and specification framework for Java and Groovy applications. | https://spockframework.org |
Spring | Spring makes programming Java quicker, easier, and safer for everybody. Microservices, reactive, and more. | https://spring.io |
Spring Cloud Functions | ||
Testcontainers | Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container. | https://www.testcontainers.org |
unirest-java | Unirest in Java: Simplified, lightweight HTTP client library. | https://github.com/kong/unirest-java |
Vavr | Vavr core is a functional library for Java. It helps to reduce the amount of code and to increase the robustness. | https://www.vavr.io |
Vert.x | Reactive applications on the JVM | https://vertx.io |
XStream | XStream is a simple library to serialize objects to XML and back again. | https://x-stream.github.io |