Open Source

Building in public is part of how we work. These libraries came out of real production problems we solved in KMP projects; we've packaged them so the broader Kotlin Multiplatform community can use and improve them.

Both libraries are published to Maven Central under the Apache 2.0 license.

Libraries

error handling

arrow-errors

v1.1.0 · Maven Central · Apache 2.0

A Kotlin Multiplatform error-handling library that turns raw exceptions into rich, actionable objects, carrying severity, presentation mode, user-facing messages, and navigation directives. Designed to standardise error handling across Android, iOS, and beyond from a single shared codebase.

error-core

Rich exceptions with severity, presentation mode, actions, and navigation directives.

error-catalog

Centralised error messages with i18n support, with English, Spanish, and French built in.

error-compose

Ready-to-use Material 3 components: Dialog, Snackbar, FullScreen, and ErrorPresenter.

Type-safe ActionableException with ErrorSeverity and ErrorPresentation
ErrorPresenter automatically routes errors to the correct UI component
Pluggable error reporting: wire in Firebase Crashlytics or any analytics tool
Works across Android, iOS, JVM, JavaScript, and Native targets
Extensible ErrorAction and ErrorNavigation with custom app-specific types

// build.gradle.kts

implementation("io.github.blackarrows-apps:arrow-errors-core:1.1.0")

implementation("io.github.blackarrows-apps:arrow-errors-catalog:1.1.0")

implementation("io.github.blackarrows-apps:arrow-errors-compose:1.1.0")

http client

arrow-http

v1.0.0 · Maven Central · Apache 2.0

A modular, client-agnostic HTTP abstraction for Kotlin Multiplatform. Your repository layer depends only on the core interfaces; swap implementations without touching business logic. Ships with a production-ready Ktor implementation with built-in auth refresh and retry policies.

http-core

Client-agnostic interfaces: HttpRequestExecutor, ApiResponse, and exception hierarchy.

http-ktor

Ktor implementation with OkHttp on Android/JVM and Darwin on iOS. Koin module included.

AuthPolicy: automatic token refresh and request retry on 401
RetryPolicy: exponential backoff for transient network failures
Full HTTP method coverage: GET, POST, PUT, DELETE, multipart uploads
Mock HttpRequestExecutor interface for clean unit testing
Per-request config: headers, query params, timeouts, redirect behaviour

// build.gradle.kts

implementation("io.github.blackarrows-apps:http-core:1.0.0")

implementation("io.github.blackarrows-apps:http-ktor:1.0.0")

Built in Production, Shared Openly

🔨

Extracted from real apps

Both libraries were built to solve specific architectural problems in AMPM, a production KMP app with thousands of active users.

🤝

Community-first

KMP is still maturing. Sharing infrastructure patterns helps the whole ecosystem move faster, and we benefit from community feedback and contributions.

📐

Architectural patterns, not just utilities

These aren't quick helpers; they encode specific architectural decisions about error handling and HTTP abstraction that we've validated in production.

Building a KMP Project?

These libraries came out of real consulting work. If you're building a Kotlin Multiplatform app and want help with architecture, error handling, or data layers, let's talk.

Get in TouchKMP Development