Skip to main content

The perfect companion
for your Kotlin journey

Inspired by functional, data-oriented
and concurrent programming

Quickstart category

Quickstart

Backend or frontend, JVM, Android or Multiplatform, Gradle or Maven, Arrow fits in all your projects

Typed errors category

Typed errors

Structured, predictable, and efficient handling of domain errors

Concurrency and resources category

Concurrency and resources

High-level utilities for working with coroutines, and correctly managing resources and shared data

Resilience category

Resilience

Make your code respond to failures in an organized way, with minimal fuss and integration with coroutines

Immutable data with optics category

Immutable data with optics

Great tooling for dealing with immutable data and sealed hierarchies

Collections and functions category

Collections and functions

Powerful additions to the basics to make your code more expressive

Dive into the concepts behind Arrow

Design recipes category

Design recipes

Bringing functional and data-oriented programming concepts in your domain models and architecture

Example projects category

Example projects

See how Arrow can be used in the frontend and the backend, alongside other popular libraries

What the community says

Our system consists of multiple services built with Kotlin and Spring Boot and the communication between the services is done through GRPC. The more services involved the more the failure points which means we need a streamlined way to handle failures and errors without affecting the operation of our system. [..] By using Either and Validated, we have eliminated unexpected exceptions in our system and we can now have a look on errors through our logs without worrying about unexpected exceptions that can bring our system down

This week, I'm into sharing things that made my life as an Android developer with Kotlin easier. In my opinion, functional programming is an awesome paradigm and can be a first-class citizen in Kotlin. [..] Arrow is a "Functional companion to Kotlin's Standard Library" and provides the core constructs from the FP world to get you started.