Arrow brings idiomatic functional programming to Kotlin
Start learning now
Arrow is composed of different libraries that greatly improve your developer experience using Kotlin
Quickstart
Gradle or Maven, JVM or Multiplatform, Arrow fits in all your projects
Typed errors
Structured, predictable, and efficient handling of errors
Coroutines
High-level utilities for working with coroutines, and correctly managing resources and shared data
Resilience
Make your code respond to failures in an organized way
Immutable data
Great tooling for dealing with immutable data and sealed hierarchies
Collections and functions
Powerful additions to the basics to make your code more expressive
What the community says
Some opinions about Arrow from the community and its practitioners
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.