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.