Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-java8

Curated list of useful, if not amazing, resources that take advantage of Java 8 and "Modern Java" thinking.
https://github.com/tedyoung/awesome-java8

Last synced: about 8 hours ago
JSON representation

  • Caching Libraries

    • Caffeine - High performance Java 8-based in-memory caching library providing a near optimal "hit rate". Well-documented and flexible. :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 `Seq` that provides methods like `crossJoin()`, `join()`, and `groupBy()`. :8ball:
    • ProtonPack - Offers about a dozen utilities for `Stream`, e.g., `takeWhile`, `zip`, `aggregate`, and a `unique` collector. :8ball:
    • 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:
    • NoException - Allows checked exceptions in functional interfaces and converts exceptions to Optional return. :8ball:
  • Interoperability libraries

    • Cyclops - Very modular, so only include what you need. From function exception handling (`try`), to generic monad operations, to pattern matching. Specific integrations to Javaslang, functionaljava, and Guava. :8ball:
  • Distributed Systems libraries

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

    • Release 21
    • Guava - One of the most widely used and well-written general-purpose Java libraries. As of Release 21, only works with Java 8 (or later). :8ball:
  • Reactive libraries

  • Testing

    • AssertJ - Fluent assertions for Java unit testing, with the 3.0 release requiring Java 8. :8ball:
  • Web App/API frameworks

    • Play Framework - The popular Play Framework, from Typesafe, is "reactive" and built on Akka (the Actor framework) and supports non-blocking I/O, and is stateless. :8ball:
    • Spark Java - Concise (micro-) framework for quickly creating Web APIs or web pages. Does not use annotations. Embeds the [Jetty](http://www.eclipse.org/jetty/) web server. :8ball:
    • 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.
    • What's New in Java 8 - Free to read online, and includes lots of examples. Includes lambdas, streams, Nashorn (JavaScript engine), and the new Date/Time API.