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