# michaelbull/kotlin-result

A multiplatform Result monad for modelling success or failure operations.

Repository: https://github.com/michaelbull/kotlin-result
Canonical: https://ross.abutalabs.com/products/kotlin-result
Language: Kotlin
License: ISC
License Family: permissive
Topics: kotlin, result, monad, either, type, class, functional-programming, functional, fp, ios, jvm, js, browser, kotlin-multiplatform
Last push: 2026-07-04T03:27:54+00:00

## Health v2 (maintenance only)
Score: 86/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 90, release rhythm 74, longevity 100
- inputs: {"age_days": 3238, "days_push": 60, "days_rel": 172, "gap_med": 0.5, "n_releases_24m": 7}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1255, forks 80 (observed 2026-08-28T04:04:08.636641+00:00)

## What it is
A Kotlin multiplatform library providing a Result monad for modelling success or failure operations without exceptions. It supports Ok/Err types, railway-oriented programming, and coroutine extensions across JVM, JS, Native, and WASM targets.

## Use cases
- model success or failure of operations in kotlin without exceptions
- replace try-catch with explicit error handling in kotlin
- implement railway oriented programming in kotlin
- share error-handling logic across jvm ios and js with kotlin multiplatform
- wrap throwing code into a result type
- convert nullable values into typed errors

## When to choose
- you write kotlin multiplatform code and want idiomatic typed error handling
- you prefer functional programming style with explicit happy and unhappy paths
- you need a lightweight, well-maintained result type with coroutine support

## When to avoid
- your codebase relies on exception-based error handling conventions
- you are not using kotlin
- you need a full functional programming toolkit rather than just a Result type

## Facets
- artifact type: library
- maturity: active
- function: error-handling, type-system
- domain: programming-languages, developer-tools
- platform: jvm, browser, wasm, windows
- tags: kotlin-multiplatform, result-monad, functional-programming, either, railway-oriented-programming, coroutines, ios, nodejs, linux, macos, android

## Member repositories
- michaelbull/kotlin-result (main) score 86

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:08.636641+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-30T05:07:20.704933+00:00, confidence not recorded.
  - readme: https://github.com/michaelbull/kotlin-result (fetched 2026-08-28T04:04:08.636641+00:00, sha 6086e196a0b2)
- Data as of 2026-08-30T08:39:29.467469+00:00.
