Skip to content

Instantly share code, notes, and snippets.

@clementi
Last active August 31, 2022 23:04
Show Gist options
  • Save clementi/7c81f7d4ffd88bdc6a0cc249200cced2 to your computer and use it in GitHub Desktop.
Save clementi/7c81f7d4ffd88bdc6a0cc249200cced2 to your computer and use it in GitHub Desktop.
Java Libraries

Java Libraries

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment