# russhwolf/multiplatform-settings

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/russhwolf-multiplatform-settings).**

2,234 stars · 79 forks · Kotlin · Apache-2.0

## Links

- GitHub: https://github.com/russhwolf/multiplatform-settings
- awesome-repositories: https://awesome-repositories.com/repository/russhwolf-multiplatform-settings.md

## Topics

`kotlin` `kotlin-android` `kotlin-ios` `kotlin-js` `kotlin-jvm` `kotlin-library` `kotlin-multiplatform` `kotlin-multiplatform-library` `kotlin-native` `kotlin-wasm`

## Description

Multiplatform Settings is a configuration management library that provides a unified interface for key-value data persistence across Kotlin Multiplatform projects. It abstracts native storage mechanisms, allowing developers to manage application settings and user preferences consistently across Android, iOS, and desktop environments.

The library distinguishes itself by supporting the serialization of complex objects, enabling the storage of non-primitive data structures directly within the settings store. It incorporates reactive patterns to facilitate real-time data observation, ensuring that application state and user interfaces remain synchronized whenever stored values are modified.

To support reliable development workflows, the library includes non-blocking operations for data access and provides in-memory storage implementations. These testing utilities allow for the verification of business logic and data-dependent code without requiring access to actual persistent device storage or external hardware.

## Tags

### Data & Databases

- [Key-Value Persistence Stores](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores.md) — Offers a unified interface for persisting simple key-value data across multiple platforms. ([source](https://github.com/russhwolf/multiplatform-settings#readme))
- [Multiplatform Persistence](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores/multiplatform-persistence.md) — Provides a unified key-value storage interface specifically for Kotlin Multiplatform projects.
- [Asynchronous Storage Operations](https://awesome-repositories.com/f/data-databases/asynchronous-storage-operations.md) — Executes storage tasks using non-blocking functions to maintain application responsiveness. ([source](https://github.com/russhwolf/multiplatform-settings#readme))
- [Complex Data Serialization](https://awesome-repositories.com/f/data-databases/complex-data-serialization.md) — Supports encoding and decoding of complex, non-primitive data structures for persistent storage. ([source](https://github.com/russhwolf/multiplatform-settings#readme))
- [Multiplatform Serialization Libraries](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/kotlin-type-serialization/multiplatform-serialization-libraries.md) — Enables encoding and decoding of complex objects into formats suitable for persistent storage across Kotlin targets.

### Development Tools & Productivity

- [Configuration Management Libraries](https://awesome-repositories.com/f/development-tools-productivity/configuration-management-libraries.md) — Provides a library for managing application settings and preferences consistently across mobile and desktop environments.

### Business & Productivity Software

- [Cross-Platform Applications](https://awesome-repositories.com/f/business-productivity-software/cross-platform-applications.md) — Enables consistent management of user preferences and application settings across diverse operating systems.
- [Data Change Listeners](https://awesome-repositories.com/f/business-productivity-software/data-change-listeners.md) — Monitors stored values and triggers notifications to keep application state synchronized with data updates. ([source](https://github.com/russhwolf/multiplatform-settings#readme))

### Software Engineering & Architecture

- [Reactive Data Stores](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/reactive-data-stores.md) — Supports reactive observation of stored data to ensure application state remains synchronized.
- [Resource Abstraction Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/resource-abstraction-interfaces.md) — Provides a unified interface that decouples application logic from platform-specific storage implementations.

### User Interface & Experience

- [Reactive State Synchronization](https://awesome-repositories.com/f/user-interface-experience/reactive-state-synchronization.md) — Keeps user interfaces in sync with underlying data models through reactive observation of stored values.
