Skip to main content


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! 🤩


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



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.



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()
.registerArrowModule() // <- this is the one



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



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


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))


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