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.

AssertJ

Assertions covering Either and Option are provided by this library.

Serialization

See the corresponding section.

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

The main point of contact between Ktor and Arrow is in serialization.

If you're using kotlinx.serialization, you need no further changes other than importing the serializers with @UseSerializers.

If you're using Jackson, you can use the custom mapper, and pass it to the ContentNegotiation configuration.

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.