Skip to main content

IconIntegrations

A library is more robust if it plays well with the rest of the ecosystem surrounding it. Arrow integrates with many useful libraries in the Kotlin ecosystem. This is a non-exhaustive list, and we're happy to hear about support for Arrow from other libraries.

We'd love to hear from you!

Do you maintain or know of a library with support for Arrow? Feel free to open an issue in the repository, and we'll add it to this list. Thanks in advance! 🤩

tip

There's a custom set of rules for Detekt that can help you refine your style when using Arrow.

Testing

Kotest

If you want to test the result of a function that uses a type defined in Arrow, like Either, you can use the matchers extension library. If you're using property-based testing (you should!), you can use generators for Arrow types.

Serialization

Jackson

If you're using Jackson for serialization, this module adds support for Arrow types. You just need to call an additional method when creating the mapper.

val mapper = ObjectMapper()
.registerKotlinModule()
.registerArrowModule() // <- this is the one

Configuration

Hoplite

Hoplite is a great library for handling configurations and supporting various sources, formats, and cascading setups. The library supports most Arrow types for decoding.

HTTP

Retrofit

If Retrofit is your library of choice for querying HTTP services, this small integration module may come in quite handy.

Ktor

For client or server purposes, you can set up Ktor to use Jackson with your custom mapper. That way, you can access (de)serialization for Arrow types.

install(ContentNegotiation) {
register(ContentType.Application.Json, JacksonConverter(JsonMapper.mapper))
}

kJWT

This library adds support for JSON Web Signatures and JSON Web Tokens to the Kotlin and Arrow ecosystems.