quiver

Project Url: cashapp/quiver
Introduction: Quiver is a collection of extension methods and handy functions to make the wonderful functional programming Kotlin library, Arrow, even better.
More: Author   ReportBugs   OfficialWebsite   
Tags:

Quiver logo Quiver logo

Quiver is a library that builds upon Arrow to make functional programming in Kotlin even more accessible & delightful.

Main features include:

  • Outcome type for modelling the presence, absence or error state of a value.
  • Extension methods on Option, List, Validated and Either for 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.

  • lib contains types and functions to provide additional functional programming idioms over and above what is available from Arrow.
  • lib-test contains kotest Matchers and Arbs for writing tests that use types found in lib.

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.

Building

Install Hermit, see instructions at https://cashapp.github.io/hermit/

Use gradle to run all Kotlin tests locally:

gradle build

Documentation

The 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.

Changelog

See a list of changes in each release in the CHANGELOG.

Contributing

For details on contributing, see the CONTRIBUTING guide.

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools
AI Daily Digest