Kotlin Multiplatform Libraries
- Network
- Repository
- Serializer
- Storage
- DI
- Image
- Audio
- Bluetooth
- Reactive
- Utility
- Debug
- Test
- Annotation Processor
- GUI
- Command Line Interface
- Architecture
- Docs
- Build & Development Tools
- Artificial Intelligence
- Social
Libraries
Network
Http
-
Ktor - Framework for quickly creating connected applications in Kotlin with minimal effort
-
ktor-client-oauth-feature - Ktor Client Feature for handling OAuth token refreshes
-
kmp-tor - Embed Tor into your application.
-
Ktorfit - HTTP client / Kotlin Symbol Processor for Kotlin Multiplatform (Js, Jvm, Android, Native, iOS) using KSP and Ktor clients inspired by Retrofit
-
fuel - The easiest HTTP networking library for Kotlin backed by Kotlinx Coroutines.
GraphQL
-
apollo - Multiplatform official GraphQL client.
-
suparnatural-graphql - Strict type safe GraphQL client with support for composable links.
-
kgql - GraphQL Document wrapper generator for Kotlin Multiplatform Project and Android
Real-time communication
- webrtc-kmp - WebRTC Kotlin Multiplatform SDK.
JSON-RPC
- apollo -JSON-RPC Kotlin Multiplatform client.
Stomp
- krossbow - A Kotlin multiplatform coroutine-based STOMP client over websockets
Utility
- Connectivity status - Monitor the internet connection status of your device on Android and iOS.
Authentication
- cognito-idp - Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform projects.
Repository
- Store - A Kotlin Multiplatform library for building network-resilient applications.
Serializer
-
kotlinx.serialization (official) - Kotlin multiplatform / multi-format serialization
-
YAKL - A YAML 1.2 processor
-
KoAP - CoAP encoder/decoder with support for UDP (RFC 7252), TCP (RFC 8323) and Observe (RFC 7641).
-
Pbandk - Kotlin code generator and runtime for Protocol Buffers
-
Kase64 - Base64 encoder/decoder for Kotlin/Multiplatform. Supports standard and URL-safe encodings.
-
Kex - Hex string encoder/decoder for Kotlin/Multiplatform.
-
Ktoml - MPP serialization library (decoder/encoder) for TOML format.
-
encoding - Rfc 4648 Section 4-8 compliant encoding (Base 16, 32 Crockford, 32 Default, 32 Hex, 64 Default, 64 Url Safe).
-
parcelize - Implement Android
Parcelable
from common code.
Storage
RDB
-
SQLDelight - Generates typesafe Kotlin APIs from SQL.
-
SQLiter - Minimal multiplatform sqlite library
-
Door - Room for Kotlin Multiplatform.
NoSQL
-
Realm - Kotlin Multiplatform and Android SDK for the Realm Mobile Database: Build Better Apps Faster.
-
Kodein-DB - Embedded NoSQL database
KVS
-
multiplatform-settings - A Kotlin Multiplatform library for saving simple key-value data.
-
KVault - Secure key-value storage for Kotlin Multiplatform projects.
-
Kissme - Kissme: Kotlin Secure Storage Multiplatform
-
Multiplatform-Preferences - Kotlin Multi Platform Preferences, for android an ios : SharedPreferences & NSUserDefault.
-
kds - Multiplatform coroutine-based kotlin library for saving Serializables with kotlinx.serialization and delegates.
-
Kottage - Kotlin Multiplatform Key-Value Store Local Cache Storage for Single Source of Truth.
FILE
-
okio - A modern I/O library for Android, Java, and Kotlin Multiplatform.
-
suparnatural-fs - Kotlin Multi Platform File System access library for
iOS
andAndroid
.
-
suparnatural-cache - A superfast, thread safe in-memory cache with configurable hashing schemes backed by persistent stores with blocking/non-blocking I/O.
-
KStore - A tiny Kotlin multiplatform library that assists in saving and restoring objects to and from disk using kotlinx.coroutines, kotlinx.serialisation and okio.
File System
- Kfswatch - Kotlin Multiplatform File System Watcher
DI
-
Kodein-DI - Painless Kotlin Dependency Injection
-
Koin - A pragmatic lightweight dependency injection framework for Kotlin
-
PopKorn - Forget about modules and components. DI can be simple.
-
kotlin-inject - Dependency injection lib for kotlin.
-
Koject - DI Container library for Kotlin Multiplatform.
Image
- korim - Kotlin cORoutines IMaging, Bitmap and Vector graphics for Multiplatform Kotlin
Audio
- korau - Pure Kotlin WAV, MP3 and OGG vorbis decoders
Bluetooth
-
Blue-Falcon - A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android
-
Kable - Simple Coroutines-powered API for interacting with Bluetooth Low Energy devices.
Reactive
Rx
-
Reaktive - Kotlin multi-platform implementation of Reactive Extensions
-
RxCommon - Multiplatform implementation of ReactiveX providing a common way to build one set of business logic for native, iOS, Javascript, Android, JVM, and other platforms
LiveData(Android)
- Multiplatform-LiveData - Multiplatorm implementation of LiveDatas / MVVM in kotlin android & native ios
Utility
Asynchronous
-
coroutine (official) - Support for Kotlin coroutine.
-
suparnatural-concurrency - Unified APIs such as Workers, Schedulers for cross-platform multithreading on
iOS
andAndroid
.
-
Koru - Coroutine wrappers for Kotlin Native generated from annotations.
-
KMP-NativeCoroutines - Library to use Kotlin Coroutines from Swift code in KMP apps.
-
FlowExt - Kotlinx Coroutines Flow Extensions. Extensions to the Kotlin Flow library.
Date, Time
-
kotlinx-datetime - Official date and time library
-
klock - Multiplatform Date and time library for Kotlin
-
island-time - A Kotlin Multiplatform library for working with dates and times
-
time - Type-safe time calculations in Kotlin, on any platform
-
time - Type-safe time periods for the Kotlinx-datetime multiplatform date/time library
-
fluid-time - Kotlin multiplatform date & time library
-
kcron - Kotlin multiplatform Cron library
Semantic Versioning
-
SemVer-KMP - A Kotlin library for Semantic Versioning with ranges and other features.
-
kotlin-semver - Semantic Versioning library for Kotlin Multiplatform.
EventBus
-
Multiplatform-Bus - Kotlin event-bus compatible with Android & native iOS.
-
Event4k - MultiPlatform Kotlin EventBus library - simple, bidirectional, concurrent.
Number
- kotlin-multiplatform-bignum - A Kotlin multiplatform library for arbitrary precision arithmetics
Hashing
- kotlinx-murmurhash - Multiplatform library for MurmurHash, a non-cryptographic hash function for general hash-based lookup focused on simplicity and performance.
![badge][badge-macos]
Cipher
-
krypt - Cryptography library. Support for SecureRandom, Hash(MD5/SHA1/SHA256), AES.
-
kotlin-multiplatform-libsodium - A Kotlin Multiplatform wrapper for Libsodium cryptography library.
String Utils
- FuzzyWuzzy-Kotlin - Fuzzy string matching on collections. Port of python & java library.
-
kasechange - Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case.
-
kotlin-multiplatform-diff - Multiplatform Kotlin library for calculating text differences.
-
doistx-normalize -- Kotlin Multiplatform library for string unicode normalization (UAX #15).
Input/Output
- keyboard-mouse-kt - Multiplatform Kotlin library for interacting with global keyboard and mouse events and states.
Analytics
-
Kotlin-Multiplatform-Firebase - Kotlin Multiplatform - Android/iOS/Web/Node.Js(Firebase)
-
FirestoreKMP - Firestore KMP Library
-
measurer - Google Analytics(using measurement protocol).
-
SegmenKT - A Segment wrapper for Kotlin Multiplatform.
Atomic
- AtomicFu - The idiomatic way to use atomic operations in Kotlin
UUID
- uuid - Kotlin Multiplatform UUID
Paging
- Multiplatform Paging - Kotlin Multiplatform library for Pagination on Android and iOS
Kotlin/Native
-
Stately - The library is set of multithreaded collection classes that will allow multithreaded mutation in Kotlin/Native.
-
coroutineworker - Kotlin Coroutine-based workers for native
Units
- Measured - Intuitive, type-safe units of measure.
Monads
-
Kotlin utilities - Scala utility types:
Option
,Either
,Try
for Kotlin Multiplatform.
-
kotlin-result - A multiplatform Result monad for modelling success or failure operations.
-
RΓ©sultat - A fork of Kotlin Result with a loading state.
-
value-clazz - Functionally equivalent to a Kotlin
value class
that implements an interface, but inheritance based and compiles to platform code.
Debug
Logging
-
Napier - Logging library for Kotlin Multiplatform.
-
KmLogging - High performance, composable multiplatform logging.
-
klogger - Logging library for Kotlin Multiplatform.
-
Multiplatform-Log - Logging library for Kotlin Multiplatform.
-
Kermit - Kotlin Multiplatform logging utility with composable log outputs and prebuilt loggers.
-
Log4k - Logging library for Kotlin Multiplatform.
-
Cabret-Log - Method call logging for Kotlin Multiplatform
-
KmmAnkoLogger - fork of the AnkoLogger for use it with Kotlin Multiplatform Mobile
Test
-
Atrium - A multiplatform assertion library for Kotlin.
-
konform - Portable validations.
-
kotest-assertions - Multiplatform assertions and test utilities.
-
kotest-framework - Multiplatform test framework for Kotlin.
-
mockk - Mocking library for test.
-
Mockative - Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP)
-
MocKMP - A Kotlin/Multiplatform Kotlin Symbol Processor that generates Mocks & Fakes.
-
kotlinx-resources - Multiplatform library for reading resources in tests.
Annotation Processor
-
MpApt - Kotlin Native/JS/JVM Annotation Processor library
-
kotlin-native-suspend-function-callback - Kotlin Multiplatform compiler plugin to generate a callback implementation for suspended functions so they are visible from Kotlin Native
GUI
-
moko-widgets - Declarative UI and screens management in common code for mobile (android & ios) Kotlin Multiplatform development
-
kgl - This library provides a thin OOP wrapper with DSLs to make programming with vulkan easier.
-
kotlin-libui - Kotlin/Native interop to libui: a portable GUI library
-
kotlin-material-ui - Kotlin Wrapper Library of Material-UI
-
muirwik - Kotlin Wrapper Library of Material-UI
-
compose-macos-theme - Multiplatform MacOS theme written in Compose UI
-
componentbox - A Kotlin multiplatform library for building dynamic server-driven UI
-
kontrol - A Kotlin Multiplatform library for creating a debugging menu
Command Line Interface
-
Clikt - Multiplatform command line interface parsing for Kotlin
-
Command_Parser - Multiplatform command parser using kotlinx.coroutines
-
Mordant - Multiplatform text styling for Kotlin command-line applications
Firebase
- Firebase Kotlin SDK - Firebase SDK for Kotlin Multiplatform projects (Firebase Authentication, Realtime Database, Cloud Firestore, Cloud Functions, Cloud Messaging and Cloud Storage).
Architecture
-
kompass - Kotlin Multiplatform Router for Android and iOS
-
Decompose - Kotlin Multiplatform lifecycle-aware business logic components (aka BLoCs) with routing functionality and pluggable UI (Jetpack Compose, SwiftUI, JS React, etc.), inspired by Badoos RIBs fork of the Uber RIBs framework.
-
oolong - MVU for Kotlin Multiplatform
-
moko-mvvm - MVVM architecture components for mobile multiplatform with LiveData (iOS and Android)
-
MVIKotlin - MVI framework for Kotlin Multiplatform.
-
Orbit MVI - MVI framework for Kotlin Multiplatform.
-
ReduxKotlin - Redux implementation for Kotlin (supports multiplatform JVM, native, JS, WASM)
-
ReKamp - Port of ReKotlin to Kotlin Multiplatform, which corresponds to ReKotlin/1.0.4.
-
Kaskade - Simplifying UI state management in Kotlin Multiplatform.
-
Flywheel - A simple and predictable state management library inspired by Redux and a few more. Fully built on top of coroutines using the concept of actors.
-
KStateMachine - KStateMachine is a Kotlin DSL library for creating state machines and hierarchical state machines (statecharts).
-
Premo β Presentation Model (aka View Model) and Navigation. Focus on writing logic instead of solving common and boring UI related issues: lifecycle, persistence, navigation, etc.
-
multiplatform-viewmodel β Shared ViewModel in Kotlin Multiplatform
-
Direkt - Kotlin Multiplatform Router for Android, iOS, Js
-
compose_bloc - State Management and Navigation Library for Jetpack Compose and Compose Multiplatform.
-
Ballast - Opinionated Application State Management framework for Kotlin Multiplatform
-
Kotlin Bloc - A simple, predictable and composable UI framework for Kotlin Multiplatform
-
kmp-viewmodel - Shared ViewModel in Kotlin Multiplatform - A Kotlin Multiplatform library that provides shared MVVM for UI applications. Components are lifecycle-aware on Android.
Project templates
-
moko-template - Template project of a Mobile (Android & iOS) Kotlin MultiPlatform project with the MOKO libraries and modularized architecture
-
KMMT - KMMT is a Multi-Module KMM based project template designed to simplify the KMM development. It uses a simplified approach that can be shared both in android and iOS easily. This template include network module, persistence module, resource module, analytics module ( with ios native library integration), domain module, presenter module etc.
Docs
- dokka (official) - Documentation Engine for Kotlin.
Build & Development Tools
-
BuildKonfig - It reads values from properties and adds those into Build config like Android.
-
kotlin-native-cocoapods - Gradle plugin for configuring Kotlin/Native with Cocoapods.
-
kotlin-frontend-plugin (official) -
Gradle plugin for frontend development.
=> Deprecated move here -
kotlin-dce - This tool allows to strip out unused properties, functions and classes from the generated JS.
-
xcode-kotlin - Kotlin Native Xcode Plugin
-
xcode-compat(official) - AppCode helper for Kotlin/Native and Xcode
-
KotlinXcodeSync - Sync Kotlin files with an Xcode project
-
kotlinx-benchmark(official) - https://github.com/Kotlin/kotlinx-benchmark
-
mobile-multiplatform-gradle-plugin - Gradle plugin to make Multiplatform projects settings simplier
-
kotlinx-ast(official) - Generic AST parsing library for kotlin multiplatform
-
KaMPKit - KaMP Kit by Touchlab is a collection of code and tools designed to get your mobile team started quickly with Kotlin Multiplatform
-
Zakadabar - A Kotlin Multiplatform library for full-stack software development
-
multiplatform-swiftpackage - This is a Gradle plugin for Kotlin Multiplatform projects that generates an XCFramework for your native Apple targets and creates a matching Package.swift file to distribute it as a binary target.
-
Swift Klib - This is a Gradle Plugin to build Swift code as part of your Kotlin Multiplatform project. With this plugin, you can access Swift-only iOS libraries, such as CryptoKit and experiment with Swift to Kotlin interoperability.
Artificial Intelligence
Symbolic AI
- 2P-Kt - A Kotlin-based, multi-platform, open ecosystem for symbolic artificial intelligence (AI) and logic programming (LP), currently supporting many facilities for LP and a full-fledged, extensible, ISO-standard Prolog solver.
Social
tgbotapi
- tgbotapi - Strongly-typed API wrapper for Telegram Bot API with fully covered API and a lot of additional DSLs on top of base API.
Math
- Multiplatform expressions evaluator - Runtime infix expressions evaluator.
Contribute
Welcome contribute! Please read the contribution guidelines first.