Overview of libraries
Arrow is not a single library, but a collection of them. The guiding principle is that each Arrow library should be self-contained: each library improves or extends a single commonly-used library in the Kotlin ecosystem (like arrow-core
and arrow-fx-coroutines
) or a particular Kotlin language feature (like arrow-optics
), or focuses on a particular set of tasks (like arrow-resilience
).
Note that during the transition to Arrow 2.x some libraries were further split. If you are an Arrow 1.x user you can follow the deprecation warnings to make the switch to the new organization, or read our 1.2.0 migration guide.
Library | Features |
---|---|
arrow-core Companion to Kotlin's standard library | Typed errors, including Raise , Either , and Option Non-empty collections Memoized recursive functions |
arrow-fx-coroutines Companion to KotlinX Coroutines | High-level concurrency, including parMap and parZip Resource management (with suspend ) |
arrow-autoclose | Resource management (no suspend ) |
suspendapp | Graceful shutdown |
arrow-resilience | Resilience patterns |
arrow-optics + arrow-optics-ksp-plugin Companion to data and sealed classes | Utilities for immutable data |
arrow-fx-stm | Software Transactional Memory (STM) |
arrow-atomic Multiplatform-ready references | Atomic references |
arrow-collectors Companion to fold and reduce | Aggregation with single traversal |
arrow-eval More powerful laziness | Control over evaluation |
arrow-functions Part of arrow-core in 1.x | Utilities for functions |
arrow-core-high-arity | arrow-core for more than 10 parameters |
Library | Integrates with |
---|---|
arrow-core-serialization | KotlinX Serialization for core types |
arrow-cache4k | cache4k for memoization |
arrow-optics-compose | Compose state management with optics |