Skip to main content

Curated list of useful, if not amazing, resources that take advantage of Java 8 and "Modern Java" thinking.

404
GitHub Stars
31
Curated Resources
12
Categories
23 hours ago
Last Refreshed
Caching LibrariesDistributed Systems librariesFunctional librariesGeneral-purpose librariesInteroperability librariesMicroservicesNetworking librariesPersistence librariesReactive librariesStreams librariesTestingWeb App/API frameworks

Use this list with your AI agent

Add the Context Awesome MCP server to Claude, Cursor, or any MCP client, then ask:

"Show me microservices resources from awesome-java8"

Installation instructions →

What's inside

Microservices

  • Apollo

    A library for writing HTTP microservices that focuses on composability and simplicity, with high performance using modern Java idioms and features. :8ball:

  • SnoopEE

    While this is "experimental", it's worth looking at if you're coming to microservices from a "slimmed down" Java EE point of view and need something to handle service discovery. This was shown in a JavaOne 2015 conference talk

Testing

  • AssertJ

    Fluent assertions for Java unit testing, with the 3.0 release requiring Java 8. :8ball:

  • Lambda Behave

    BDD-oriented framework that leverages lambdas to make tests more "behavioral". If you've seen Jasmine or Spock, this will be familiar. :8ball:

  • Mockito

    The Java 8-specific version of the wonderful mocking library, Mockito. Works great with

Distributed Systems libraries

  • Atomix

    Event-driven framework for coordinating fault-tolerant distributed systems built on the Raft consensus algorithm. :8ball:

Web App/API frameworks

  • Bootique

    A "minimally opinionated" web framework that leverages Google's Guice dependency-injection library to include modules such as JOOQ, Curator, Jersey, Kafka, Metrics, and more. :8ball:

  • FreeBuilder

    Writes builder-pattern builders for your code. Very well documented and supports all major IDEs and build tools. Supports Java 8

  • Java 8 in Action

    One of the earlier Java 8 books, but has lots of good diagrams and pictures to help one learn about things like internal vs. external iteration in streams.

  • Java 8 Lambdas

    Written by the author of the Lambda Behave testing framework, clearly Richard Warburton knows his lambdas. Concise, yet covers testing & debugging, design, and concurrency.

  • Java SE 8 for the Really Impatient

    Cay S. Horstmann has been writing Java books forever. This book is right on target and includes even some of the "minor" new features in Java 8, such as using a lambda to do "compare-and-set" operations on atomic variables.

  • Jooby Project

    A modular web framework that supports multiple servers (Netty, Jetty, and Undertow), Websockets, etc., and can be used in many different ways by including a wide variety of modules, e.g., provide a full MVC web site, or just provide APIs. :8ball:

Caching Libraries

  • Caffeine

    High performance Java 8-based in-memory caching library providing a near optimal "hit rate". Well-documented and flexible. :8ball:

Interoperability libraries

  • Cyclops

    Very modular, so only include what you need. From function exception handling (

Reactive libraries

  • Cyclops React

    A library that focuses on users needing async and lazy streams (formerly Simple React). Very well documented with lots of diagrams (yay!). :8ball:

  • Project Reactor

    A second-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification. It directly interacts with the Java 8 functional API, Completable Future, Stream and Duration. :8ball:

Functional libraries

  • Derive4J

    Code generator for user-defined algebraic data types (aka sum types) based on an enhanced "visitor" pattern. Provides structural pattern matching, laziness, functional setters (return a copy of an object with one field modified) & more. :8ball:

  • jOOλ

    Part of the jOOQ series of libraries, provides more Functions, Tuples, and

  • NoException

    Allows checked exceptions in functional interfaces and converts exceptions to Optional return. :8ball:

  • ProtonPack

    Offers about a dozen utilities for

  • Vavr

    Adds the notion of Tuples, along with immutable Values and Pattern Matching, to make it easier to write more functional Java code. (Formerly known as Javaslang.) :8ball:

Showing a sample of 31 resources. View the full list on GitHub →