Description
Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more.
Vavr fuses the power of object-oriented programming with the elegance and robustness of functional programming. The most interesting part is a feature-rich, persistent collection library that smoothly integrates with Java's standard collections.
Because Vavr does not depend on any libraries (other than the JVM) you can easily add it as standalone .jar to your classpath.
Javaslang alternatives and similar libraries
Based on the "Functional Programming" category.
Alternatively, view Javaslang alternatives based on common mentions on social networks and blogs.
-
Functional Java
Backport of Java 8's lambda expressions to Java 7, 6 and 5 -
jOOλ
jOOλ - The Missing Parts in Java 8 jOOλ improves the JDK libraries in areas where the Expert Group's focus was elsewhere. It adds tuple support, function support, and a lot of additional functionality around sequential Streams. The JDK 8's main efforts (default methods, lambdas, and the Stream API) were focused around maintaining backwards compatibility and implementing a functional API for parallelism. -
cyclops-react
An advanced, but easy to use, platform for writing functional applications in Java 8. -
derive4j
Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses. -
Faux Pas
A library that simplifies error handling for Functional Programming in Java -
Vavr
Functional component library that provides persistent data types and functional control structures.
Write Clean Java Code. Always.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Javaslang or a related project?
README
Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more.
Vavr fuses the power of object-oriented programming with the elegance and robustness of functional programming. The most interesting part is a feature-rich, persistent collection library that smoothly integrates with Java's standard collections.
Because Vavr does not depend on any libraries (other than the JVM) you can easily add it as standalone .jar to your classpath.
To stay up to date please follow the blog.
Using Vavr
See User Guide and/or Javadoc.
Gradle tasks:
- Build:
./gradlew check
- test reports:
./build/reports/tests/test/index.html
- coverage reports:
./build/reports/jacoco/test/html/index.html
- test reports:
- Javadoc (linting):
./gradlew javadoc
Contributing
A small number of users have reported problems building Vavr. Read our [contribution guide](./CONTRIBUTING.md) for details.
*Note that all licence references and agreements mentioned in the Javaslang README section above
are relevant to that project's source code only.