Kotlin Multiplatform Libraries
- Network
- Serializer
- Storage
- DI
- Image
- Audio
- Bluetooth
- Reactive
- Utility
- Debug
- Test
- Annotation Processor
- GUI
- Command Line Interface
- Architecture
- Docs
- Build & Development Tools
- Artificial Intelligence
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
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.
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.
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
Storage
RDB
-
SQLDelight - Generates typesafe Kotlin APIs from SQL.
-
SQLiter - Minimal multiplatform sqlite library
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.
FILE
-
okio - A modern I/O library for Android, Kotlin, and Java.[WIP]
-
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.
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.
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
-
fluid-time - Kotlin multiplatform date & time library
-
kcron - Kotlin multiplatform Cron library
EventBus
- Multiplatform-Bus - Kotlin event-bus compatible with Android & native iOS.
Number
- kotlin-multiplatform-bignum - A Kotlin multiplatform library for arbitrary precision arithmetics
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).
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 Result monad for modelling success or failure operations.
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
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.
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
Command Line Interface
- Clikt - Multiplatform command line interface parsing for Kotlin
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
-
oolong - MVU for Kotlin Multiplatform
-
moko-mvvm - MVVM architecture components for mobile multiplatform with LiveData (iOS and Android)
-
MVIKotlin - 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.
Project templates
- moko-template - Template project of a Mobile (Android & iOS) Kotlin MultiPlatform project with the MOKO libraries and modularized architecture
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
-
KMMT - KMMT is a KMM based project template designed to simplify the KMM development. It uses a simplified MVVM approach that can be shared both in Android and iOS easily.
-
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.
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.
Contribute
Welcome contribute! Please read the contribution guidelines first.