On this page
Overview
Arrow is a Typed Functional Programming library for Kotlin. It provides data types such as Either and Option, operators such as zipOrAccumulate, and APIs around typed errors, coroutines/resources, resilience, and immutable data.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Represent success and failure with Either, Option, and accumulation
Either, Option, and operators such as zipOrAccumulate let applications represent domain errors and validation results explicitly instead of relying only on exceptions.
Sources: [1]
Use functional APIs for coroutines, resources, and resilience
The official README highlights documentation for typed errors, coroutines/resources, resilience, immutable data, and collection/function utilities.
Sources: [1]
Best fit
Fits Kotlin backends that want explicit domain-error models
It is useful in application and domain layers where success/failure branches should be visible in function types and handled deliberately by callers.
Sources: [1]
Before adoption
Adopt it as a programming abstraction rather than an application framework
Arrow is not an HTTP server or DI container. Incremental adoption around Either and typed errors is easier to maintain when the team agrees on common idioms.
Sources: [1]
Arrow 2.2.3 includes Kotlin 2.4.0 updates and Jackson integration improvements
The 2.2.3 release includes updates for Kotlin 2.4.0 and improvements to Jackson integration for non-empty collections, so Kotlin/Jackson upgrades should be checked against Arrow release notes.
Sources: [2]
Official sources
- [1]Arrow README(2026-10-06)
- [2]Arrow 2.2.3 release(2026-10-06)
Supplemental curator note
It fits Kotlin backends that want explicit domain-error models. Adopt it incrementally as a programming abstraction rather than expecting an application framework.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/arrow-kt/arrow.git - 2
Enter the repository
cd arrow - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
6,581 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 9
- Open PRs
- 11
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- functional-programming
- kotlin-library
- monads
- functional-data-structure
- kotlin
- fp-types
- for-comprehension
- optics
- polymorphism
- typed-lambda-calculus
- typeclasses
- arrow
- Stars
- 6,581
- Forks
- 474
- Watchers
- 88
- Open issues
- 22
- Contributors
- 264
- Owner type
- Organization
- Primary language
- Kotlin
- License
- Apache-2.0
- Repository last updated
- Oct 5, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Kotest4,789 Stars
1 shared tag(s) · 1 shared category(s) · Same language
combine spec styles, assertions, and property testing across Kotlin projects
Kotlin - kotlin-logging3,113 Stars
1 shared tag(s) · 1 shared category(s) · Same language
reduce logging boilerplate with lazy messages and Kotlin-style APIs
Kotlin - http4k2,791 Stars
1 shared tag(s) · 1 shared category(s) · Same language
serve, consume, and test HTTP services as Kotlin functions
Kotlin - Ktorm2,345 Stars
1 shared tag(s) · 1 shared category(s) · Same language
use strongly typed SQL and sequence-style entity APIs on pure JDBC
Kotlin - gRPC Kotlin1,297 Stars
1 shared tag(s) · 1 shared category(s) · Same language
generate Kotlin/JVM gRPC clients and servers from Protocol Buffers
Kotlin - Kotlin JDSL825 Stars
1 shared tag(s) · 1 shared category(s) · Same language
build JPA queries from ordinary Kotlin classes without generated metamodels
Kotlin
Report incorrect information
Tell us if any listing information is incorrect or outdated.