Skip to content

pditommaso/awesome-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Awesome Java

A curated list of awesome Java libraries inspired by other Awesome lists

AOT compilers

Annotation processor

  • immutables - Annotation processor to create immutable objects and builders.
  • Lombok - Lombok is used to reduce boilerplate code for model/data objects.
  • mapstruct - An annotation processor for generating type-safe bean mappers

Big collections, cache & off-heap memory

Messaging & queues

Checkpoint & restore

CLI parser

  • Airline - Annotation-based framework for parsing Git like command line structures.
  • args4j
  • barclay - Command line argument parser and online documentation generation utilities.
  • cli-toolbelt - Annotation based command line builder with support for git-like subcommands, basic argument parsing and works with others like JewelCLI.
  • CmdOption - Simple annotation-driven command line parser.
  • commandline - Annotation based command line parser.
  • jbock - Curiously simple CLI parser.
  • JewelCLI - Annotated interface to automatically parse and present command line arguments.
  • jopt-simple - Java library for parsing command line options.
  • picocli - Annotation based command line parser with strong typing and support for git-like subcommands.

Crypto

  • java-otp - A one-time password (HOTP/TOTP) library for Java.
  • OTP-Java - One-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP).
  • two-factor-auth - Two Factor Authentication Java code implementing the Time-based One-time Password Algorithm.
  • JWT-Java - JSON Web Token implementation for Java according to RFC 7519.

DB engines

  • Derby - Open source relational database implemented entirely in Java.
  • Gaffer - Large-scale entity and relation database supporting aggregation of properties.
  • H2 - H2 is an embeddable RDBMS written in Java.
  • HSQLDB - HSQLDB (Hyper SQL Database) is a relational database management system written in Java, offering a fast, small database engine which offers both in-memory and disk-based tables
  • LevelDB - Port of LevelDB to Java.
  • PalDB - Embeddable write-once key-value store written in Java.
  • MapDB - Fast and easy to use embedded Java database engine.
  • Xodus - JetBrains Xodus is a Java transactional schema-less embedded database.

Dataflow & parallization

  • Actr - Simple, fast and typesafe Java actor model implementation.
  • JCSP - Communicating Sequential Processes (CSP) for Java.
  • Quasar - Fibers, Channels and Actors for the JVM.
  • GPars - Concurrency and parallelism framework for the JVM.
  • Pipes - Lazy Data Flow Framework.
  • Pekka - Apache Pekko is a fork of Akka 2.6.x.

DI

  • Dagger - Fast dependency injector.
  • Tiger - Fastest java dependency injection framework.
  • Purejin - Java dependency injection through code.

Error handling

  • Failsafe - Simple, sophisticated failure handling.
  • Resilience4j - Fault tolerance library designed for Java8 and functional programming.

File system

Hashing

Http

  • Http-builder-ng - The Easy Http Client for Groovy.
  • OkHttp - HTTP+SPDY client for Android and Java applications.
  • Unirest - Lightweight HTTP libraries for Java.
  • retrofit - Type-safe HTTP client for Android and Java.

Logging

  • blitz4j - Logging framework for fast asynchronous logging.
  • log4j2 - Async Loggers have 18 times higher throughput than Log4j 1.x and Logback.

Math & ML

  • Jblas - Linear Algebra for Java.
  • FastR - R language intepreter.
  • Renjin - JVM-based interpreter for the R language.
  • Tribuo - Machine learning lib by Oracle

Messaging

  • Aeron - Efficient reliable unicast and multicast message transport.
  • MBassador - Event bus aiming at ease of use and performance.
  • Mappedbus - Library for low latency IPC between multiple Java processes/JVMs.

Native invocation / FFI

  • JavaCpp - Bridge between Java and native C++.
  • JNA - Java Native Access.

Packaging

Regular expressions

  • RE2/J - Linear time regular expression matching in Java.

Reactive stream

Serialization

Syntax parsing

  • In-memory-antlr - In Memory compilation of ANTLR grammars
  • Java-parser - Java 9 Parser and Abstract Syntax Tree for Java
  • Groovy-Parrot - Brand new parser for Groovy programming language.
  • Rewrite - Semantic code search and transformation via Java AST transformation.

Templating

  • handlebars - Logic-less and semantic Mustache templates with Java

Task scheduler

  • db-scheduler - Persistent cluster-friendly scheduler for Java
  • Jobrunr - Background processing in Java. Backed by persistent storage.
  • Workhorse - Java EE Job Engine for background jobs and business critical tasks
  • Sundial - Lightweight Java job scheduling framework forked from Quartz
  • ShedLock - Distributed lock for your scheduled tasks

Testing

  • βetamax - Tool for mocking external HTTP web services and REST APIs.
  • Ersatz - Mock HTTP server for testing client code.
  • Overcast - Helper classes to write your tests against hosts in the cloud.
  • Spock - Enterprise-ready testing and specification framework.
  • WireMock - A tool for mocking HTTP services.

Other

  • asciitable - Several implementations of a text table, originally using ASCII and UTF-8 characters for borders.
  • Allocation instrumenter - Java agent that rewrites bytecode to instrument allocation sites.
  • Arthas - Alibaba Java Profiling and Diagnostic Tool Arthas.
  • Bloofi - Multidimensional Bloom filters.
  • Cfg4j - Modern configuration library for distributed apps.
  • directory-watcher - cross-platform Java recursive directory watcher, with a JNA macOS watcher.
  • Docker-java - Java Docker API Client.
  • Drip - Fast JVM launching without the hassle of persistent JVMs.
  • emoji-java - Java library that helps you use Emojis in your java applications.
  • Fastfilter - Fast Approximate Membership (Bloom) Filters (aka xor-filter)
  • fast-classpath-scanner - Uber-fast, ultra-lightweight Java classpath scanner.
  • file-leak-detector - Java agent that detects file handle leak.
  • Goodtimes - Java 8 Date/Time API enhancements for Groovy.
  • java-string-similarity- Various string similarity and distance algorithms.
  • jOOR - Fluent Reflection in Java.
  • jvmtop - Java monitoring for the command-line - Java 11 fork see here
  • jmail - modern and lightweight library for working with email addresses in Java
  • K8s-cli-java - Simple Java Demo of Kubernetes kubectl plugin + Java Graal native image.
  • fabric8io/kubernetes-client - Java client for Kubernetes & OpenShift.
  • Permit-reflect - Permit reflective access for java 11.
  • square/OKIO - A modern I/O API for Java.
  • text-io - library for creating interactive console applications in Java
  • TornadoVM - Automatically run Java programs on GPUs
  • RelProxy - Java and Groovy hot class reloader and Java based shell and scripting.
  • hibernate-types - Extra types that are not supported by the Hibernate ORM core.
  • java-stream-batch-processing
  • Simple-java-mail - Simple API, Complex Emails (Jakarta Mail smtp wrapper

Web frameworks

  • Jooby - Scalable, fast and modular micro web framework for Java.
  • Micronaut - Micronaut Application Framework.
  • Play framework - High Velocity Web Framework.
  • Ratpack - A toolkit for JVM web applications .
  • Spark - A Sinatra inspired framework for java.
  • Vert.x - Vert.x is a tool-kit for building reactive applications on the JVM.

Tutorial

About

A curated list of awesome Java libraries

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published