# vavr-io/vavr

vʌvr (formerly called Javaslang) is a non-commercial, non-profit object-functional library that runs with Java 8+. It aims to reduce the lines of code and increase code quality.

Repository: https://github.com/vavr-io/vavr
Canonical: https://ross.abutalabs.com/products/vavr
Homepage: https://vavr.io
Language: Java
License: Apache-2.0
License Family: permissive
Topics: javaslang, java, functional-programming, object-functional, immutable-collections, persistent-collections, hacktoberfest
Last push: 2026-08-25T06:37:46+00:00

## Health v2 (maintenance only)
Score: 81/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 48, longevity 100
- inputs: {"age_days": 4598, "days_push": 8, "days_rel": 185, "gap_med": 112, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 6166, forks 672 (observed 2026-08-28T04:09:36.797706+00:00)

## What it is
Vavr (formerly Javaslang) is an object-functional library for Java 8+ providing persistent immutable collections, pattern matching, and functional control structures like Option, Try, Either, and Lazy. It has no dependencies beyond the JVM and aims to reduce boilerplate while increasing code quality.

## Use cases
- use immutable persistent collections in Java
- functional error handling with Try and Either in Java
- pattern matching in Java
- replace Java streams with functional collection operations
- property-based testing in Java
- avoid nulls with Option type in Java

## When to choose
- you want functional programming idioms in Java 8+ without adding dependencies
- you need immutable, thread-safe data structures
- you want expressive error handling and pattern matching in Java

## When to avoid
- your team is not familiar with functional programming concepts
- you need minimal jar size or strict performance-critical collection code
- you are locked into Java standard collections APIs across a large legacy codebase

## Facets
- artifact type: library
- maturity: stable
- function: serialization, testing, concurrency, error-handling
- domain: programming-languages, developer-tools
- platform: jvm
- tags: functional-programming, immutable-collections, persistent-collections, pattern-matching, option-monad, try-monad, either, tuple, java-8, javaslang, algorithms

## Member repositories
- vavr-io/vavr (main) score 81

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:36.797706+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:47:27.643446+00:00, confidence not recorded.
  - readme: https://github.com/vavr-io/vavr (fetched 2026-08-28T04:09:36.797706+00:00, sha 952e07c183d2)
  - homepage: https://vavr.io (fetched 2026-08-29T08:44:11.789016+00:00, sha c68952886617)
  - site_page: https://docs.vavr.io/ (fetched 2026-08-29T08:44:11.797940+00:00, sha e7d0a8f16d93)
- Data as of 2026-08-30T08:39:29.467469+00:00.
