Browse Kotlin Multiplatform libraries

index data from klibs.io
Sort
Tagdependency-injection
koin4.2.2Featured
10.0k126 used by

Pragmatic lightweight dependency injection framework using a DSL and light container. Offers packages for core, coroutines, testing, Android, Ktor, annotations, and Jetpack Compose integration. Includes tutorials and community support.

AndroidJSJVMNativeWasm·InsertKoinIO·Apache License 2.0
Kodein7.32.0
3.3k10 used by

Straightforward dependency retrieval container offering lazy instantiation, binding, and debugging capabilities. Integrates with Android, Compose, and Ktor. Provides a simple, readable declarative DSL.

AndroidJSJVMNativeWasm·kosi-libs·MIT License
Decompose3.5.0Featured
2.8k22 used by

Breaks down code into tree-structured, lifecycle-aware business logic components with routing and pluggable UI support. Offers clear UI/non-UI separation, dependency injection, state preservation, and custom navigation models.

AndroidJSJVMNativeWasm·arkivanov·Apache License 2.0
kotlin-inject0.9.0Featured
1.5k7 used by

Compile-time dependency injection library enabling seamless construction of type instances through annotations like `@Component`, `@Provides`, and `@Inject`. Supports component arguments, type alias differentiation, function injection, scopes, component inheritance, multi-bindings, assisted injection, lazy initialization, and default arguments.

JSJVMNativeWasm·evant·Apache License 2.0
orbit-mvi11.0.0
1.3k2 used by

Lightweight Redux/MVI-like library offering a simple, type-safe, coroutine-based API. Features include lifecycle-safe flow collection, ViewModel support, unit testing, espresso idling resources, and compatibility with RxJava and LiveData. Ideal for state management and side-effect handling.

AndroidJSJVMNativeWasm·orbit-mvi·Apache License 2.0
metro1.2.1
1.3k9 used by

Metro is a compile-time dependency injection framework that draws heavy inspiration from Dagger, Anvil, and Kotlin-Inject. It seeks to unify their best features under one, cohesive solution while adding a few new features and implemented as a compiler plugin.

JSJVMNativeWasm·ZacSweers·Apache License 2.0
moko-mvvm0.16.1
1.1k9 used by

Offers Model-View-ViewModel architecture components for UI applications, featuring lifecycle-aware ViewModel, LiveData, EventsDispatcher, and integration with various UI tools like DataBinding, ViewBinding, and SwiftUI.

AndroidJSJVMNative·icerockdev·Apache License 2.0
MVIKotlin4.4.0
1.0k

Framework enabling MVI pattern implementation with features like logging, time travel, and lifecycle-aware connections. Flexible architecture supports various reactive libraries or none, facilitating incremental adoption and experimentation.

AndroidJSJVMNativeWasm·arkivanov·Apache License 2.0
FlowMVI3.3.0-alpha03
9311 used by

Extensive architectural framework for developing reactive applications with features like automatic state preservation, remote debugging, error recovery, and a powerful plugin system for reusing business logic.

AndroidJSJVMNativeWasm·respawn-llc·Apache License 2.0
FlowRedux2.1.1
781

Provides a DSL and coroutine-based framework for building asynchronous state machines, simplifying state transitions and handling actions with concise syntax and reactive state management.

AndroidJSJVMNativeWasm·freeletics·Apache License 2.0
KMP-ObservableViewModel1.0.5Featured
6963 used by

Enables use of AndroidX ViewModels in SwiftUI, ensuring state changes propagate correctly. Provides wrappers for seamless integration with SwiftUI and supports creating and managing ViewModels across different platforms.

AndroidJSJVMNativeWasm·rickclephas·MIT License
multiplatform-paging3.3.0-alpha02-0.5.1
65812 used by

Extends AndroidX Paging with additional targets and iOS UI components, enabling shared pagination logic across various platforms. Includes common, runtime, compose, and testing modules for seamless integration.

AndroidJSJVMNative·cashapp·Apache License 2.0
Kotlin-BLE-Library2.0.0-beta02
515

Simplifies Bluetooth Low Energy usage with coroutine-based asynchronous APIs: scanning, connecting (autoConnect), GATT reads/writes, MTU/PHY management, notifications, and mock environments for testing.

JVM·nordicsemi·BSD 3-Clause "New" or "Revised" License
kotlin-inject-anvil0.1.7
3804 used by

Enables compile-time dependency injection with automatic merging of component interfaces, simplifying the creation and management of object graphs through annotations like `@ContributesTo`, `@ContributesBinding`, and `@MergeComponent`.

AndroidJSJVMNativeWasm·amzn·Apache License 2.0
Decompose-Router0.9.0
275

Compose-multiplatform navigation library leveraging Decompose to manage screen configurations with a `Router`, supporting retention of view models across configuration changes and multiple platforms.

AndroidJSJVMNativeWasm·xxfast
multiplatform-paging0.6.2
250

Facilitates pagination in codebases, enabling common pagination logic for both Android and iOS. Integrates with platform-specific libraries, exposing paginated data as flows for easy consumption.

JVMNative·kuuuurt·Apache License 2.0
Premo1.0.0-alpha.15
202

Facilitates implementation of the Presentation Layer, focusing on state management, lifecycle awareness, navigation, and state persistence. Supports hierarchical view composition and messaging between components.

AndroidJSJVMNativeWasm·dmdevgo·MIT License
lazy-pagination-compose1.7.3
1881 used by

Intuitive, customizable pagination solution built on lazy lists, automatically managing pagination states during scrolling. Includes error handling, retry, and refresh functionalities, ideal for seamless integration into UI or ViewModel.

AndroidJSJVMNativeWasm·Ahmad-Hamwi·MIT License
kmp-viewmodel0.8.0
1721 used by

Shared MVVM library for UI applications with lifecycle-aware components, state restoration, and interoperability with Swift/Objective-C and SwiftUI. Supports multiple platforms, including Compose Multiplatform.

AndroidJSJVMNativeWasm·hoc081098·MIT License
PopKorn2.3.1
158

Simple, powerful, and lightweight dependency injector allowing usage without extra files. Supports various scopes, environments, runtime arguments, and interface injections. Ideal for Android, iOS, JVM, and JS development.

AndroidJSJVMNative·corbella83·Apache License 2.0
dikt1.1.0-kotlin-2.0.20
144

Simplifies dependency injection with compile-time validation and faster compilation by generating code for dependency resolution. Features include constructor-based injection, singleton management, and module scoping without runtime file generation.

JSJVMNative·sergeshustoff·MIT License
injekt0.0.1-dev757
1141 used by

Next-gen dependency injection library offering a streamlined approach to providing and injecting dependencies, supporting multi-injection, scoping, modules, components, function injection, and type distinguishing strategies.

JSJVM·IVIanuu
cokoin1.0.0
89

Injection library for Compose, wrapping Koin. Configures dependency injection using `@Composable` functions, supports scoped dependencies, ViewModel integration, and Compose navigation enhancements.

JSJVM·burnoo
kinzhal0.0.6
68

Library for compile-time dependency injection, emulating Dagger features. Utilizes Kotlin Symbol Processing, supporting constructor injection, component provision, and scope annotations. Lacks field injection and other advanced Dagger functionalities.

JVMNative·daugeldauge·Apache License 2.0
meteor-kmp0.4.3
59

Facilitates application development using the MVI architecture, unidirectional data flow, and asynchronous code integration. Features include state management, common use cases, and easy testing.

AndroidNative·getspherelabs·Apache License 2.0
Atlas0.4.7
43

Comprehensive SDK enables development of scalable, maintainable applications by integrating MVVM architecture, navigation, CLI tools, and IoC container. Features include compile-time dependency injection and resource generation.

AndroidJSJVMNativeWasm·Ares-Defence-Labs·Apache License 2.0
di0.0.7
39

Lightweight runtime dependency injection container enables easy registration and retrieval of dependencies with features like auto-wiring, singletons, bindings, qualifiers, modules, and scopes management.

AndroidJSJVMNativeWasm·Ivy-Apps·Apache License 2.0
kInject22.3.0
29

Multi-platform, compile-time dependency injection framework designed for simplicity and ease of use. Features include dependency graphs, scopes, type inference, modules, and flexible overriding options. Avoids reflection-based solutions, promoting efficient and scalable dependency management.

JSJVMNative·Wokdsem·Apache License 2.0
anvil0.5.4
29

Simplifies dependency injection by automatically merging Dagger modules and component interfaces, reducing boilerplate code and improving build efficiency. Supports custom code extensions.

JSJVMNativeWasm·ZacSweers·Apache License 2.0
multiplatform-SwissTransfer10.1.1
28

Core infrastructure for a file-transfer system: unified network APIs, Realm-backed database, shared utilities, and an injection model abstracting API/database logic into simple manager calls.

AndroidNative·Infomaniak·GNU General Public License v3.0
Page 1Next →