Awesome Kotlin Multiplatform
Kotlin Multiplatform technology simplifies the development of cross-platform projects. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming.
This list contains libraries which support iOS and Android targets in first place.
Resources
🖼 Website
🚀 Web Wizard
🍏 Compose Multiplatform Wizard
📋 Documentation
📜 Blog
📺 YouTube
🤩 Samples
🗄 Jetpack Compose Components
📚 Kotlin Multiplatform by Tutorials
📚 Simplifying Application Development with Kotlin Multiplatform Mobile
Contents
🛠 Tooling
Kotlin Multiplatform Mobile plugin for Android Studio
The Kotlin Multiplatform Mobile (KMM) plugin helps you develop applications that work on both Android and iOS.
CocoaPods integration
Kotlin/Native provides integration with the CocoaPods dependency manager. You can add dependencies on Pod libraries as well as use a multiplatform project with native targets as a CocoaPods dependency (Kotlin Pod).
Swift Package integration
This gradle plugin provides two-way interoperability between Kotlin dependencies and Kotlin-based Swift Package Multiplatform.
Carthage integration
Adds support for integrating Carthage dependencies into a KMM project.
Libres gradle plugin
String/Image resources generation in Kotlin Multiplatform.
MOKO KSwift gradle plugin
KSwift it's gradle plugin for generation Swift-friendly API for Kotlin/Native framework.
SKIE gradle plugin
A Swift-friendly API Generator for Kotlin Multiplatform.
CompleteKotlin gradle plugin
Gradle Plugin to enable auto-completion and symbol resolution for all Kotlin/Native platforms.
gradle-buildconfig-plugin gradle plugin
A plugin for generating BuildConstants for any kind of Gradle projects: Java, Kotlin, Groovy, etc. Designed for KTS scripts.
BuildKonfig gradle plugin
BuildConfig for Kotlin Multiplatform Project
Plugin to facilitate debugging iOS applications using Kotlin Native in Xcode. Defines Kotlin files as source code, with basic highlighting. Allows you to set breakpoints and includes llvm support to view data in the debug window. Xcode does not officially support custom language definitions, but they also don't explicitly block them.
Dokka documentation generation tool
Dokka is a documentation engine for Kotlin, performing the same function as javadoc for Java. Just like Kotlin itself, Dokka fully supports mixed-language Java/Kotlin projects. It understands standard Javadoc comments in Java files and KDoc comments in Kotlin files, and can generate documentation in multiple formats including standard Javadoc, HTML and Markdown.
KDoctor command-line tool
KDoctor is a command-line tool that helps to set up the environment for Kotlin Multiplatform Mobile app development. It ensures that all required components are properly installed and ready for use. If something is missed or not configured Kdoctor highlights the problem and suggests how to fix the problem.
Swift Klib gradle plugin
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.
parcelize-darwin gradle plugin
Kotlin/Native compiler plugin that generates Parcelable implementations for Darwin (Apple) targets. Allows writing Parcelable classes for all Darwin targets, similary to the Android's kotlin-parcelize plugin. Can be also used together with the kotlin-parcelize plugin to write Parcelable classes in the commonMain source set.
AboutLibraries gradle plugin
Collects all dependencies and licenses of gradle projects (Kotlin Multiplatform) and provides an easy to integrate Attribution / Open Source library UI to integrate in Compose / Android targets.
Libraries
📋 Log
Napier - logger
Napier is a logger library for Kotlin Multiplatform. It supports for the Android, Darwin(iOS, macOS, watchOS, tvOS), JVM, JavaScript. Logs written in common module are displayed on logger viewer of each platform.
Kermit - logger
Kermit is a Kotlin Multiplatform logging utility with composable log outputs. The library provides prebuilt loggers for outputting to platform logging tools such as Logcat and NSLog.
Kodein-Log - logger
Kodein-Log is a lightweight Kotlin/Multiplatform logging library with a simple API, that works on JVM, Android, JavaScript, iOS, as well as for all Kotlin/Native targets.
Klogger - logger
Klogger is a logger library for multiplatform Kotlin. This library provides a simple interface to do logging into suitable outputs like javascript’s console, or stdout/stderr.
Cabret - logger
This is an Kotlin Library that enables Annotation-triggered method call logging for Kotlin Multiplatform.
KmLogging - logger
Kotlin multiplatform logging. High performance, composable and simple to use.
Kydra Log - logger
Kotlin Multiplatform Library that allows to write logs in common module.
kmp-xlog - logger
KMP wrapper for tencent mars xlog.
🌎 Network
Ktor - http client
Ktor includes a multiplatform asynchronous HTTP client, which allows you to make requests and handle responses, extend its functionality with plugins (formerly known as features), such as authentication, JSON serialization, and so on.
Ktorfit - Retrofit for Kotlin Multiplatform on KTS
HTTP client / Kotlin Symbol Processor for Kotlin Multiplatform (Android,Js, Jvm , Native, iOS) using KSP and Ktor clients inspired by Retrofit https://foso.github.io/Ktorfit
Apollo GraphQL - GraphQL client
A strongly-typed, caching GraphQL client for the JVM, Android, and Kotlin multiplatform.
kgql - GraphQL Document wrapper generator
GraphQL Document wrapper generator for Kotlin Multiplatform Project. Currently, available for JVM/Android/iOS
WebRTC KMP - WebRTC client
WebRTC Kotlin Multiplatform SDK
Krossbow - WebSocket client
A coroutine-based Kotlin multi-platform WebSocket client and STOMP 1.2 client over web sockets.
MOKO SocketIo - Socket.IO implementation
This is a Kotlin Multiplatform library that provides real-time, event-based communication for iOS and Android.
rsocket - RSocket Kotlin multi-platform implementation
RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets and Aeron.
📦 Storage
Multiplatform-Settings - Key-Value preferences
This is a Kotlin library for Multiplatform apps, so that common code can persist key-value data
abc-kmm-shared-storage - Key-Value storage
A local storage management library for Kotlin Multiplatform Mobile iOS and Android
KVault - secure key-value storage
It acts as an iOS Keychain wrapper and implements encrypted SharedPreferences for Android.
SQLDelight - SQLite database
SQLDelight generates typesafe kotlin APIs from your SQL statements. It verifies your schema, statements, and migrations at compile-time and provides IDE features like autocomplete and refactoring which make writing and maintaining SQL simple.
Realm - NoSQL database
Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the Kotlin SDK for Realm, which runs on Kotlin Multiplatform and Android.
Store 5 - Kotlin Library for Async Data Loading and Caching
A Store is responsible for managing a particular data request. When you create an implementation of a Store, you provide it with a Fetcher, a function that defines how data will be fetched over network. You can also define how your Store will cache data in-memory and on-disk.
Flower - Flower simplifies networking and database caching on Android/Multiplatform.
Flower is a Kotlin multi-platform library that makes networking and database caching easy. It enables developers to fetch network resources and use them as is OR combine them with local database at single place with fault-tolerant architecture.
cache4k - In-memory Cache
Provides a simple in-memory key-value cache for Kotlin Multiplatform, with support for time-based (expiration) and size-based evictions.
SQLiter - SQLite driver
SQLiter is a SQLite driver for Kotlin Native, currently Apple and Windows variants. It is designed to serve as a driver to power user-friendly libraries rather than something to use directly. Currently SQLiter powers the SQLDelight library on native clients.
SQLlin - Low-level API for SQLite in Kotlin Multiplatform
SQLlin is a Kotlin Multiplatform SQLite library that based on DSL and KSP. You can write SQL statements with your Kotlin code and these can be verified by Kotlin compiler.
Kodein-DB - NoSQL database
Kodein-DB is a Kotlin/Multiplatform embedded NoSQL database that works on JVM, Android, Kotlin/Native and iOS. It is suited for client or mobile applications.
KStore - File-based object storage
A Kotlin multiplatform library that assists in saving and restoring objects to and from disk
Universal-Cache - Kotlin caching and request sharing
Kotlin Flow caching and request sharing. Main idea: don't request data more times than it's needed.
📱 Device
MOKO Permissions - System permissions manager
Kotlin Multiplatform library for providing runtime permissions on iOS & Android
abc-kmm-notifications - Notification Manager
Remote Notification Manager for Kotlin Multiplatform Mobile
abc-kmm-Location - Location manager
Location Service Manager for Kotlin Multiplatform Mobile iOS and android
MOKO Geo - Location manager
Geolocation access for mobile (android & ios) Kotlin Multiplatform development
MOKO Biometry - System biometry manager
This is a Kotlin Multiplatform library that provides authentication by FaceId and TouchId (Fingerprint)
MOKO Media - System media manager
This is a Kotlin Multiplatform library that provides media picking in common code (photo/video) and video player controls.
MOKO Maps - Google/Mapbox maps manager
This is a Kotlin Multiplatform library that provides controls of maps to common code.
Kable - Coroutines-powered API for interacting with Bluetooth Low Energy devices.
Kotlin Asynchronous Bluetooth Low Energy provides a simple Coroutines-powered API for interacting with Bluetooth Low Energy devices.
Blue-Falcon - A Bluetooth kotlin multiplatform library for iOS and Android
A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has the same functionality for all platforms, e.g. connect to device, fetch services, fetch characteristics.
Connectivity status - Multiplatform connectivity status
This Kotlin multiplatform mobile utility library allows monitoring the internet connection status of the device. You can use it from shared code as well as directly from Android or iOS code.
Kontrol - Debug menu
A Kotlin Multiplatform library for creating debug menu.
💉 Dependency Injection
Koin - DI framework
A pragmatic lightweight dependency injection framework for Kotlin developers. Koin is a DSL, a light container and a pragmatic API
Kodein - DI framework
Kodein-DI is a very simple and yet very useful dependency retrieval container.
kotlin-inject - DI framework
A compile-time dependency injection library for kotlin.
Koject - KSP DI framework
Koject is a DI Container Library for Kolin Multiplatform using KSP.
DI.kt - DI for kotlin multiplatform
Simple DI with compile-time dependency graph validation for kotlin multiplatform. It uses IR to create method's bodies with dependency injection.
PopKorn - DI framework
PopKorn is a simple, powerful and lightweight Kotlin Multiplatform Dependency Injector. It doesn't need any modules or components, just use it without writing a single extra file! It supports AND, IOS, JVM, JS and NATIVE.
🏗 Architecture
MVI Kotlin - MVI framework
MVIKotlin is a Kotlin Multiplatform framework that provides a way of (not only) writing shared code using MVI pattern. It also includes powerful debug tools like logging and time travel.
Orbit MVI - MVI framework
Orbit is a Redux/MVI-like library for KMM, targetting Android and iOS.
FlowMVI - Plugin-based MVI framework
FlowMVI is a KMP MVI library based on coroutines with a rich DSL and a powerful plugin system.
KMM-ViewModel - KMM ViewModels
A library that allows you to share ViewModels between Android and iOS.
VisualFSM - FSM-based MVI framework
VisualFSM is a Kotlin Multiplatform library for implements an FSM-based (Finite-state machine) MVI pattern and a set of tools for visualization and analysis of FSM's diagram of states.
Redux Kotlin - Redux framework
Redux implementation for Kotlin (supports multiplatform JVM, native, JS, WASM)
CoRed - Opinionated Redux-like implementation
CoRed is Redux-like implementation that maintains the benefits of Redux's core idea without the boilerplate. No more action types, action creators, switch statements or complicated setup. It is Kotlin and it has coroutine supported right out-of-the-box.
Flywheel - Redux for Kotlin Multiplatform
A simple and predictable state management library inspired by Redux for Kotlin Multiplatform using the concepts of actors.
FlowRedux - Statemachine library with nice DSL
Building async. running Kotlin Multiplatform state machine made easy with a DSL and coroutines.
Mobius.kt - Mobius Framework
Kotlin Multiplatform Mobius implementation.
MOKO MVVM - MVVM framework
This is a Kotlin Multiplatform library that provides architecture components of Model-View-ViewModel for UI applications. Components are lifecycle-aware on Android.
Oolong - MVU for Kotlin Multiplatform
Oolong is an Elm inspired Model-View-Update (MVU) implementation for Kotlin multiplatform.
Summer - Share ViewModels between iOS, Android and Web apps
Summer is a presentation level library with kotlin-multiplatform support. It can be used to share viewModels between iOS, Android and Web apps. Summer does not use code generation and thus have not significant effort on compilation time and odd build-time errors. Project aims to have out-of-box support of Android Framework, Jetpack Compose, UIKit and SwiftUI without any adapters and platform-specific limitations.
Premo — Presentation Model (aka View Model) and Navigation
Premo is a Kotlin Multiplatform library that helps to implement the Presentation Layer and share it on iOS, Android, Desktop and Web. Focus on writing logic instead of solving common and boring UI related issues: lifecycle, persistence, navigation, etc.
Decompose - componentization and navigation
Decompose is a Kotlin Multiplatform library for breaking down your code into lifecycle-aware business logic components (aka BLoC), with routing functionality and pluggable UI (Jetpack Compose, Android Views, SwiftUI, JS React, etc.)
Decompose-Router - navigation
A Compose-multiplatform navigation library that leverage Decompose to create an API inspired by Conductor
Ballast - State Management framework
Opinionated Application State Management framework for Kotlin Multiplatform
Essenty/Lifecycle - lifecycle handling in the Kotlin Multiplatform common code
Essenty provides the Lifecycle API to help with lifecycle handling in the common code. It is very similar to Android Activity lifecycle.
multiplatform-paging - Pagination library for KMM by Cash App
A Kotlin Multiplatform library for pagination with the same API as AndroidX Paging
multiplatform-paging - Pagination library for KMM
A Kotlin Multiplatform library for pagination.
Kotlin Bloc - UI framework for Kotlin Multiplatform
Kotlin Bloc is a simple, predictable and composable UI framework for Kotlin Multiplatform supporting Android, iOS and JVM.
kmp-viewmodel - Kotlin Multiplatform ViewModel
A Kotlin Multiplatform library that provides shared MVVM. Supports Android Parcelable, Kotlin Parcelize, AndroidX SavedStateHandle for restoring state after process death.
Meteor - MVI framework with CommonViewModel, CommonStateFlow, UseCase
MVI/Redux framework for Kotlin Multiplatform
🔍 Analytics
MOKO Crash Reporting - reporting to Crashlytics
Fatal and Non-Fatal reporting to Crashlytics for Kotlin Multiplatform Mobile
CrashKiOS - Crash reporting for Kotlin/Native iOS applications
Thin library that provides symbolicated crash reports for Kotlin code on iOS.
NSExceptionKt - Better crash reports on Apple platforms
Unhandled Kotlin exceptions logging for Apple platforms.
abc-kmm-analytics-tools - Analytics Tools
Automatically tracking and sending events of screen view and capture
Analytics - analytics facade
Kotlin Multiplatform library as a simple facade or abstraction for analytics.
trckr - KSP processor
KSP processer that simplifies the collection of analytics
🩺 Test
Kotest - test framework
Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing
Turbine - test library
A small testing library for kotlinx.coroutines Flow
MockingBird - test framework
A Koltin multiplatform library that provides an easier way to mock and write unit tests for a multiplatform project
Mockative - Mocking with KSP
Mocking for Kotlin/Native and Kotlin Multiplatform using the Kotlin Symbol Processing API (KSP)
MocKMP - Mocking with KSP
A Kotlin/Multiplatform Kotlin Symbol Processor that generates Mocks & Fakes.
KLIP - Snapshot ((c|k)lip) manager for tests.
Kotlin Multiplatform snapshot ((c|k)lip) manager for tests. Automatically generates and asserts against a persistent Any::toString() representation of the object until you explicitly trigger an update. Powered by kotlin compiler plugin to inject relevant keys and paths.
Assertk - Fluent assertions library
Fluent assertions library for Kotlin with full Multiplatform support.
🔑 Crypto
Cryptography-Kotlin - Type-safe Multiplatform cryptography library for Kotlin
The library doesn’t implement any cryptography algorithm on its own, but wraps well-known future-proof solutions like OpenSSL 3.x, WebCrypto or JCA with type-safe multiplatform API providing uniform experience with aligned default behavior, and same expected results using identical parameters while allowing to use platform-specific capabilities.
Libsodium - Libsodium bindings for Kotlin Multiplatform
Libsodium bindings project uses libsodium c sources and libsodium.js to provide a kotlin multiplatform wrapper library for libsodium.
Krypto - Pure Kotlin cryptography library
SecureRandom, Hash (MD5/SHA1/SHA256), AES
cryptohash - A set of cryptographic (and not so cryptographic) hashing functions
xxHash, Blake, HMAC, Keccak, MD5, SHA, etc
murmurhash - library for hashing using MurmurHash
Kotlin Multiplatform (KMP) library for MurmurHash, a non-cryptographic hash function for general hash-based lookup focused on simplicity and performance.
Diglol Crypto - Diglol Crypto for Kotlin Multiplatform.
Lots of crypto algorithms for Kotlin Multiplatform.
KotlinCrypto/MACs - Message Authentication Code algorithms for Kotlin Multiplatform
Message Authentication Code algorithms for Kotlin Multiplatform: HmacMD5, HmacSHA1, HmacSHA224, HmacSHA256, HmacSHA384, HmacSHA512, HmacSHA512/224, HmacSHA512/256
KotlinCrypto/hash - Cryptographic hash functions for Kotlin Multiplatform
Cryptographic hash functions for Kotlin Multiplatform: MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256
KotlinCrypto/secure-random - cryptographically secure random data from system sources
Kotlin Multiplatform library for obtaining cryptographically secure random data from the system. Modeled after Java's SecureRandom class, it provides a simple API surface area. Under the hood it utilizes system functions so that SecureRandom is accessible from common code.
📁 File
Okio - access, store, and process your data
Okio is a library that complements java.io and java.nio to make it much easier to access, store, and process your data.
KorIO - access, store, and process your data
KorIO is a library for Charsets, Encodings, Checksums, Compression, I/O, Streams, Virtual File System, Networking, Http, WebSockets, Serialization…
Suparnatural FS - file system i/o
Kotlin multiplatform file system i/o for android, iOS, Java and NodeJS
🚀 Language extensions
Arrow - Functional companion to Kotlin's Standard Library
Arrow aims to provide a lingua franca of interfaces and abstractions across Kotlin libraries. For this, it includes the most popular data types such as Option, Either, Validated etc and functional operators such as traverse and computation blocks to empower users to write pure FP apps and libraries built atop higher order abstractions.
Result - success/failure result
This is a tiny framework for modelling success/failure of operations in Kotlin. In short, it is a model in type of Result<V: Any?, E : Throwable>.
ApiResult - Declarative Error Handling
ApiResult is a Kotlin Multiplatform declarative error handling framework that is performant, easy to use and feature-rich.
🗃 Serializer
kotlinx.serialization - JSON serialization
Kotlin serialization consists of a compiler plugin, that generates visitor code for serializable classes, runtime library with core serialization API and support libraries with various serialization formats.
XmlUtil - Component of the XMLUtil library
XmlUtil is a set of packages that supports multiplatform XML in Kotlin.
tomlkt - Multiplatform TOML encoder and decoder, powered by kotlinx.serialization
Lightweight and easy to use kotlinx.serialization plugin for TOML serialization and deserialization.
Ksoup - Kotlin Multiplatform HTML Parser
Ksoup is a lightweight Kotlin Multiplatform library for parsing HTML, extracting HTML tags, attributes, and text, and encoding and decoding HTML entities.
Essenty/Parcelable - @Parcelize annotation for Kotlin Multiplatform
Essenty brings both Android Parcelable interface and the
@Parcelize
annotation from kotlin-parcelize compiler plugin to Kotlin Multiplatform, so they both can be used in common code.
Kotlin Object Notation - Lightweight DSL to build fluid JSON trees
Kotlin Object Notation - Lightweight DSL to build fluid JSON trees
MOKO Parcelize - Parcelize in common code
This is a Kotlin Multiplatform library that supports Parcelize in common code.
Pbandk - Kotlin code generator and runtime for Protocol Buffers.
It has the core set of protobuf features implemented and is being used in production.
⏰ Date-Time
Kotlinx DateTime - Date & Time library
A multiplatform Kotlin library for working with date and time.
Klock - Date & Time library
Klock is a Date & Time library for Multiplatform Kotlin. It is designed to be as allocation-free as possible using Kotlin inline classes, to be consistent and portable across targets since all the code is written in Common Kotlin, and to provide an API that is powerful, fun and easy to use.
Island Time - Date & Time library
A Kotlin Multiplatform library for working with dates and times, heavily inspired by the java.time library.
Kronos Multiplatform - Network Time Protocol (NTP) client
Kotlin Multiplatform library for network time synchronization. Extension for Kotlinx DateTime library.
➿ Asynchronous
Kotlinx Coroutines - Kotlin coroutines
Library support for Kotlin coroutines
Reaktive - Reactive Extensions
Kotlin multiplatform implementation of Reactive Extensions.
Kotlinx Atomicfu - atomic operations
The idiomatic way to use atomic operations in Kotlin.
Stately - Kotlin Multiplatform State Library
Stately is a state utility library to facilitate state management in Kotlin Multiplatform.
CoroutineWorker - Workers for Kotlin Native
Kotlin Coroutine-based workers for native
Koru - Coroutine wrappers for Kotlin Native
Automatically generates wrappers for suspend functions and Flow for easy access from Swift code in Kotlin Multiplatform projects.
KMP-NativeCoroutines - Swift wrapper for Kotlin Coroutines
Library to use Kotlin Coroutines from Swift code in KMP apps
FlowExt - Kotlinx Coroutines Flow Extensions
A Kotlin Multiplatform library, that provides many operators and extensions to Kotlin Coroutines Flow.
🍎 Compose UI
Appyx Navigation, transition animations, gestures, UI components.
Model-driven navigation + UI components with gesture control for Compose Multiplatform
Voyager Compose Multiplatform Navigation.
A multiplatform navigation library built for, and seamlessly integrated with, Jetpack Compose.
Calf Compose Adaptive Look & Feel
Calf is a library that allows you to easily create adaptive UIs for your Compose Multiplatform apps.
Libres-Compose Resources generation in Kotlin Multiplatform
This artifact provides painterResource function that can be used to get Painter from io.github.skeptick.libres.Image in common code.
InsetsX WindowInsets
InsetsX provides a WindowInsets utility for Compose Multiplatform.
Window Size Class Window Size Class
Compose Multiplatform: Material 3 Window Size Class
Compose-Imageloader Compose Image library for Kotlin Multiplatform.
Compose Image library for Kotlin Multiplatform.
Kamel Compose Multiplatform image loading.
An asynchronous media loading library for Compose Multiplatform.
Compose Icons Open Source icon packs for Compose Multiplatform.
Compose Multiplatform icons is a pack of libraries that provide well known Icon Packs. The library usage is inspired by Compose Material Icons.
Compose Rich Editor Provides Rich Editor component for Compose Multiplatform.
A Rich text editor library for both Jetpack Compose and Compose Multiplatform, fully customizable and supports the common rich text editor features.
Material Theme Preferences Switching Dark/Light Material themes.
Kotlin Multiplatform library for easy switching Dark/Light Material themes on Compose.
Drag Select Compose Google Photos style drag-to-select multi-selection.
Compose Multiplatform library that allows you to easily implement a "Google Photos"-style multi-selection in your Compose apps.
MaterialKolor Generate Material3 color schemes from a seed color.
Compose multiplatform library for generating dynamic Material3 color schemes from a seed color.
AAY-chart Compose Multiplatform chart library.
The library contains several chart composables for usage in Kotlin Multiplatform projects and Android Native. Currently supported platforms are Desktop Android and IOS
kmPalette A port of Androidx Palette, generate palettes from image.
A Compose Multiplatform library for generating color palettes from images, including the dominant color.
Reveal Reveal effect for Compose Multiplatform
A reveal effect (coach mark, tutorial, onboarding) for Compose Multiplatform (Android, iOS, desktop, Web)
KMP-ComposeUIViewController KMP-ComposeUIViewController.
KSP library for generating ComposeUIViewController and UIViewControllerRepresentable files when using Compose Multiplatform for iOS.
🎨 Graphics
MOKO Graphics - Graphics primitives
This is a Kotlin Multiplatform library that provides graphics primitives to common code.
Korim - Imaging utilities
Kotlin cORoutines IMaging, Bitmap and Vector graphics for Multiplatform Kotlin
🧩 Service SDK
Firebase Kotlin SDK - A Kotlin-first SDK for Firebase
The Firebase Kotlin SDK is a Kotlin-first SDK for Firebase. It's API is similar to the Firebase Android SDK Kotlin Extensions but also supports multiplatform projects, enabling you to use Firebase directly from your common source targeting iOS, Android or JS.
openai-kotlin - OpenAI SDK
Kotlin client for OpenAI's API with multiplatform and coroutines capabilities.
Sentry SDK - Sentry Kotlin Multiplatform SDK
This project is an experimental SDK for Kotlin Multiplatform. This SDK is a wrapper around different platforms such as JVM, Android, iOS, macOS, watchOS, tvOS that can be used on Kotlin Multiplatform.
VK SDK Kotlin - Unofficial VK SDK
Create a chat-bot for VK.com in a few lines of code, use the API and forget about the limitations
bitcoin-kmp - Kotlin Multiplatform Bitcoin Library
This is a simple Kotlin Multiplatform library which implements most of the bitcoin protocol
MOKO Tensorflow - Mobile Kotlin TensorFlow
This is a Kotlin MultiPlatform library that provides access to TensorFlow-Lite functionality from common source set.
qBittorrent - wrapper for the qBittorrent Web API
Multiplatform Kotlin wrapper for the qBittorrent Web API using Ktor.
Cognito-idp - AWS Cognito Identity Provider
Lightweight AWS Cognito Identity Provider client for Kotlin Multiplatform and Typescript projects.
TMDb API - access to TMDb API
This library gives access to TMDb API version 3 and 4 for mobile, desktop, and web applications. It supports Swift, Kotlin, and JavaScript by setting up as a Kotlin Multiplatform project.
Growth Book SDK - GrowthBook Kotlin SDK
GrowthBook is an open-source platform for feature flagging and a/b testing built for data teams, engineers, and product managers. It's great whether you're looking to just analyze experiment results or looking to make it easier to deploy code.
ConfigCat - Kotlin Multiplatform SDK for ConfigCat
Kotlin Multiplatform SDK for ConfigCat, a feature flag, feature toggle, and configuration management service. That lets you launch new features and change your software configuration remotely without actually (re)deploying code. ConfigCat even helps you do controlled roll-outs like canary releases and blue-green deployments.
🧮 Arithmetic
KBigNum - Big Numbers
Library for Big Numbers
BigNum - Big Numbers
Kotlin Multiplatform BigNum library is a pure kotlin implementation of arbitrary precision arithmetic operations. It follows the same approach as Kotlin does on JVM to keep the interface familiar.
🛢 Resources
MOKO Resources - System resources manager
This is a Kotlin Multiplatform library that provides access to the resources on iOS & Android with the support of the default system localization.
Kotlinx-Resources - text resources manager
Kotlin Multiplatform (KMP) plugin and library that add support for reading resources in tests.
The plugin and a library work in tandem to provide a unified API across platforms for reading resources from each source set's resources folder.
🔧 Utils
UUID - UUID generator
Kotlin Multiplatform UUID generator
Uri KMP - A library for working with URIs in Kotlin Multiplatform
A library for working with URIs in Kotlin Multiplatform
Diglol Encoding - Common encodings for Kotlin Multiplatform.
Diglol Encoding provides Hex/Base16, Base32, Base64 encodings for Kotlin Multiplatform.
Diglol Id - A global Id generator for Kotlin Multiplatform.
A global Id generator for Kotlin Multiplatform. It modifies the timestamp to 5 bytes based on Xid.
ByteBuffer - Kotlin Multiplatform bytebuffer/byte[] wrapper
A kotlin multiplatform library that allows you to allocate and modify byte[] natively using an API similar to Java's ByteBuffer API.
zipline - Run Kotlin/JS libraries in Kotlin/JVM and Kotlin/Native programs
Zipline works by embedding the QuickJS JavaScript engine in your Kotlin/JVM or Kotlin/Native program. It's a small and fast JavaScript engine that's well-suited to embedding in applications.
Kase64 - Base64 encoder/decoder
Base64 encoder/decoder for Kotlin/Multiplatform. Supports Android, iOS, JavaScript and plain JVM environments.
Colormath - Multiplatform Kotlin color conversion and manipulation
Colormath is a Kotlin Multiplatform library for color manipulation and conversion.
GEOK - Kotlin geometry library
Small geometry library for Java and Kotlin. Contains useful basic utilities that require on most application.
fluid-currency - currency library
Kotlin multiplatform currency library.
fluid-country - country library
Kotlin multiplatform country library.
Kmem - Data primitives
Kmem is bit, array and fast memory utilities library for multiplatform Kotlin
KaseChange - convert strings between various case formats
Multiplatform Kotlin library to convert strings between various case formats including Camel Case, Snake Case, Pascal Case and Kebab Case
FuzzyWuzzy-Kotlin - Fuzzy string matching for Kotlin
Useful for selecting the closest matching string from a collection of strings. Various algorithms are available.
kotlin-semver - Semantic versioning
Semantic Versioning library for Kotlin Multiplatform.
Kontrol - Debug menu
Kotlin Multiplatform library for creating a debugging menu.
Korau - Kotlin cORoutines AUdio
Pure Kotlin WAV, MP3 and OGG vorbis decoders
Kim - Kotlin Image Metadata
Kotlin Multiplatform library for reading and writing image metadata
XMP Core for Kotlin Multiplatform - Kotlin Multiplatform port of Adobe's XMP SDK
Kotlin Multiplatform library for reading and writing XMP (Extensible Metadata Platform) files
Highlights - Kotlin Multiplatform syntax highlighting engine
Kotlin Multiplatform library for analyzing and coloring syntax of code string
BlahBlah - Blah-Blah generates fake data for robust testing and development
Blah-Blah generates fake data for robust testing and development
KMPUtils - Kotlin STL Extensions & Utils
KMPUtils is a collection of everything missing from the Kotlin Multiplatform Standard Library.
RSSParser - A Kotlin Multiplatform library to parse a RSS Feed
RSS Parser is a Kotlin Multiplatform library for parsing RSS and Atom feeds. It supports Android, iOS, and the JVM.
Suggest your an idea
What libraries are you missing?
Authors
https://github.com/terrakok/kmm-awesome/graphs/contributors
Contribution guide
Feel free to contribute. Follow common style and welcome! :)
License
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.