finds.dev← search

// the find

kittinunf/Result

★ 936 · Kotlin · NOASSERTION · updated Feb 2026

The modelling for success/failure of operations in Kotlin and KMM (Kotlin Multiplatform Mobile)

A small Kotlin library that wraps operation results in a `Result<V, E : Throwable>` type, letting you chain success/failure paths without nested try-catch blocks. It supports Kotlin Multiplatform (JVM, Android, Native, WASM), so you can share error-handling logic across targets. Aimed at Kotlin developers who want Railway Oriented Programming without pulling in Arrow's full machinery.

The API surface is genuinely small — `map`, `flatMap`, `mapError`, `flatMapError`, and `fold` cover almost every composition case without surprises. KMP support across JVM, Native, and WASM JS is real, not aspirational — the test sources exist per-platform. The `NoException` sentinel type for operations that can never fail is a nice touch that keeps composition uniform. Active CI with lint, test, and release workflows, and the library has been stable long enough to avoid breaking changes on every update.

Kotlin's stdlib has had its own `Result<T>` since 1.5, and Kotlin 1.7+ made it usable as a return type without restriction — so the core premise of this library now competes directly with a zero-dependency standard-library type. The `E : Throwable` constraint is the main differentiator (typed errors), but it also means you're forced into the Throwable hierarchy for error types instead of arbitrary sealed classes, which is a real limitation compared to Arrow's `Either`. With 54 forks and activity that has slowed, you're betting on a small maintainer base for a foundational abstraction.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →