# vavr-io/vavr

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/vavr-io-vavr).**

6,109 stars · 659 forks · Java · apache-2.0

## Links

- GitHub: https://github.com/vavr-io/vavr
- Homepage: https://vavr.io
- awesome-repositories: https://awesome-repositories.com/repository/vavr-io-vavr.md

## Topics

`functional-programming` `hacktoberfest` `immutable-collections` `java` `javaslang` `object-functional` `persistent-collections`

## Tags

### Programming Languages & Runtimes

- [Functional Programming Libraries](https://awesome-repositories.com/f/programming-languages-runtimes/java-utility-libraries/functional-programming-libraries.md) — Brings persistent collections, pattern matching, and error handling to Java applications as a functional programming library.
- [Lazy Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/deferred-execution/lazy-evaluation.md) — Implements lazy evaluation using Supplier-based thunks to defer computation and enable infinite sequences.
- [Functional Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/functional-interfaces.md) — Provides standardised functional interfaces that unify lambda usage and checked exception handling across the library.
- [Pattern Matching](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/control-flow/pattern-matching.md) — Provides pattern matching constructs for branching logic based on data structure matching. ([source](https://cdn.jsdelivr.net/gh/vavr-io/vavr@main/README.md))
- [Persistent Data Structures](https://awesome-repositories.com/f/programming-languages-runtimes/persistent-data-structures.md) — Implements persistent data structures with structural sharing for immutable collections that preserve prior versions.
- [Functional](https://awesome-repositories.com/f/programming-languages-runtimes/concurrency-libraries/functional.md) — Provides functional primitives that prevent shared mutable state for safe concurrent operations in Java.
- [Functional](https://awesome-repositories.com/f/programming-languages-runtimes/concurrency-primitives/functional.md) — Manages concurrent operations with functional primitives that prevent shared mutable state. ([source](https://cdn.jsdelivr.net/gh/vavr-io/vavr@main/README.md))
- [Safe Concurrency Primitives](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/safe-concurrency-primitives.md) — Manages concurrent operations with functional primitives that prevent shared mutable state and side effects.

### Artificial Intelligence & ML

- [Structural Pattern Matchers](https://awesome-repositories.com/f/artificial-intelligence-ml/pattern-matching-engines/structural-pattern-matchers.md) — Provides a pattern matching engine that destructures values based on structural shapes similar to algebraic data types.

### Part of an Awesome List

- [Pattern Matching](https://awesome-repositories.com/f/awesome-lists/devtools/pattern-matching.md) — Provides declarative pattern matching for destructuring data and branching logic based on structural shapes.
- [Declarative Pattern Matchers](https://awesome-repositories.com/f/awesome-lists/devtools/pattern-matching/declarative-pattern-matchers.md) — Provides a declarative pattern matching system for Java that destructures values based on structural shapes.

### Data & Databases

- [Persistent Collections](https://awesome-repositories.com/f/data-databases/data-collections-datasets/persistent-collections.md) — Builds immutable collections that preserve prior versions on modification for safe concurrent programming.
- [Persistent Collection Implementations](https://awesome-repositories.com/f/data-databases/immutable-collection-sorting/persistent-collection-implementations.md) — Builds immutable collections that preserve prior versions when modified for safe concurrent access. ([source](https://cdn.jsdelivr.net/gh/vavr-io/vavr@main/README.md))
- [Tuple Data Structures](https://awesome-repositories.com/f/data-databases/tuple-data-structures.md) — Provides typed tuples (Tuple1 to Tuple8) for type-safe, immutable bundling of heterogeneous values.

### Software Engineering & Architecture

- [Monadic Error Handling](https://awesome-repositories.com/f/software-engineering-architecture/error-handling-strategies/monadic-error-handling.md) — Ships Try and Either types for monadic error handling that propagates failures without throwing exceptions.
- [Value-Based Equality Checking](https://awesome-repositories.com/f/software-engineering-architecture/value-based-equality-checking.md) — Compares objects by structural content rather than reference identity for predictable behaviour in collections.
