Quiver is a library that builds upon Arrow to make functional programming in Kotlin even more accessible & delightful.
Main features include:
Outcometype for modelling the presence, absence or error state of a value.- Extension methods on
Option,List,ValidatedandEitherfor improved error handling, combinators and interoperability with other Arrow and Kotlin types. - Extension methods on suspended functions to allow for seamless retries of operations.
There are two published libraries.
libcontains types and functions to provide additional functional programming idioms over and above what is available from Arrow.lib-testcontains kotest Matchers and Arbs for writing tests that use types found inlib.
On the Sonatype page for Quiver, choose the latest version
of lib (and lib-test if desired) and follow the instructions for inclusion in your build tool.
Quiver is a Kotlin Multiplatform library. Gradle resolves the right artifact for each target from app.cash.quiver:lib;
JVM, JS, iOS, macOS, tvOS, watchOS, Linux (x64) and Windows (mingw x64) are supported. Other build tools should
depend on the platform artifact directly, for example app.cash.quiver:lib-jvm.
Quiver requires Kotlin 2.2 or newer. lib-test requires Kotest 6.2.6 or newer.
Install Hermit, see instructions at https://cashapp.github.io/hermit/
Use gradle to run all Kotlin tests locally:
gradle buildThe API documentation is published at https://block.github.io/quiver/. It is rebuilt from main on every merge, so it
may include changes that have not been released yet.
See a list of changes in each release in the CHANGELOG.
For details on contributing, see the CONTRIBUTING guide.