For persistent settings, the strongest matches are marcuswestin/store.js (This library provides a cross-platform, reactive key-value storage abstraction), orhanobut/hawk (This library provides a secure, local key-value persistence solution) and sindresorhus/electron-store (This library provides a persistent, local key-value storage solution). react-native-async-storage/async-storage and rosedblabs/rosedb round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Find the best configuration management systems for persistent settings. Compare top-rated open-source libraries by activity to find the best fit.
Store.js is a client-side state persistence library and web storage abstraction layer. It provides a consistent browser key-value storage wrapper that manages the persistence of application state across sessions using the most capable available local storage mechanism. The engine is extensible, allowing for the integration of custom storage backends and plugins to modify how data is read and written. It functions as a reactive web storage manager, monitoring specific keys to trigger notifications when stored values are updated. The library handles automatic data serialization for complex typ
This library provides a cross-platform, reactive key-value storage abstraction for browser environments that handles JSON serialization and persistent state management, fitting the requirements for local application settings storage.
Hawk is a secure local storage library and persistence API for Android. It provides a framework for saving and retrieving primitives, objects, and collections using a key-value storage system. The library features an encrypted storage wrapper that secures data through a pluggable crypto provider, including a fallback mechanism to non-encrypted mode. Its architecture allows for custom storage backend implementations and interface-based component injection to replace default serialization, parsing, and conversion processes. The system supports type-preserving serialization and includes utiliti
This library provides a secure, local key-value persistence solution for Android applications that supports JSON-like object serialization and encrypted storage, fitting the requirements for managing application settings.
electron-store is a persistence layer and key-value storage solution for Electron applications. It manages user preferences and application state by saving and retrieving structured data as JSON files on the local file system. The library includes capabilities for obfuscating configuration files to prevent manual modification of saved data. It also provides a system for automatic data structure migration when the application version is incremented and supports custom serialization pipelines to replace standard JSON parsing. The project covers a broad surface of state management, including sc
This library provides a persistent, local key-value storage solution specifically designed for managing application settings and state via JSON files, making it a direct fit for your requirements.
React Native AsyncStorage is a persistent key-value storage library designed for React Native applications. It provides a unified local storage interface that works identically on both iOS and Android, ensuring saved data remains available across app restarts and when the device has no network connectivity. The library uses an asynchronous background I/O queue to handle all storage operations without blocking the JavaScript thread, communicating with native storage engines through React Native's bridge protocol. It includes a serialization layer that converts JavaScript values to strings for
This library provides a persistent, cross-platform key-value storage solution specifically designed for managing application settings and user preferences in React Native environments.
RoseDB is a persistent key-value database and log-structured storage engine. It functions as a lightweight storage system that utilizes a log-structured hash table and a Bitcask engine implementation to provide fast data retrieval and disk-backed persistence. The system operates as an atomic transaction engine, grouping multiple read and write operations into single units to maintain data consistency. It handles data through a key-value model that supports individual insertions, lookups, and deletions. The database provides capabilities for batch data processing and atomic updates. Additiona
RoseDB is an embedded key-value store that provides the persistent, local storage foundation required for managing application settings, though it lacks built-in features like reactive updates or native encryption.
MMKV is a high-performance, cross-platform key-value storage framework designed for mobile platforms and POSIX environments, including Android, iOS, macOS, and Windows. It provides a persistence layer that utilizes memory-mapped files and binary serialization to achieve low-latency data access. The project distinguishes itself through native support for multi-process synchronization, allowing concurrent read and write operations across different application processes. It also implements security via AES encryption for data at rest, featuring symmetric encryption and key rotation to protect st
MMKV is a high-performance, cross-platform key-value storage framework that provides secure, persistent local storage for application settings, though it uses binary serialization rather than native JSON.
localForage is a browser storage wrapper and key-value store that provides a unified JavaScript API for persisting data. It acts as an abstraction layer over IndexedDB, WebSQL, and localStorage, allowing web applications to save data offline. The library features a priority-based driver fallback system that automatically detects and selects the most capable storage engine available in the browser. It simplifies data management by providing an asynchronous interface for storing complex JavaScript objects and binary buffers without requiring manual serialization. The project covers broad capab
This library provides a robust, asynchronous key-value storage abstraction for web applications that handles complex object serialization, though it lacks built-in encryption and reactive update features.
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 tha
This library provides a unified, cross-platform interface for persistent key-value storage and reactive configuration management in Kotlin projects, making it a direct fit for your requirements.
Hive is a lightweight NoSQL key-value database written in pure Dart for local data persistence. It functions as a type-safe document store that allows for the saving and retrieval of complex data structures and custom objects. The system distinguishes itself through the use of custom adapters for object serialization and symmetric-key encryption to secure data at rest. For web environments, it provides a persistence layer that wraps IndexedDB and utilizes web workers. The project covers broad capability areas including container management, atomic transactional writes, and indexed data retri
Hive is a lightweight, cross-platform NoSQL database for Dart and Flutter that provides persistent, encrypted key-value storage with built-in support for custom object serialization, making it a strong fit for managing application settings and local state.
Viper is a configuration management library designed to centralize application settings from diverse sources into a unified, type-safe registry. It aggregates data from local files, environment variables, command-line flags, and remote key-value stores, providing a single source of truth for application state. By utilizing a hierarchical key-value registry, the system resolves configuration values based on a prioritized stack of providers, ranging from default values to runtime overrides. The library distinguishes itself through its pluggable provider abstraction and dynamic update capabiliti
Viper is a comprehensive configuration management library that supports local file persistence, JSON serialization, and dynamic updates, making it a standard tool for handling application settings in Go.
This project is an asynchronous key-value store designed for client-side data persistence. It provides a unified interface that allows applications to save and retrieve complex data types, including binary objects, while maintaining responsiveness through non-blocking operations. By enabling offline-first functionality, it ensures that data remains accessible even when a network connection is unavailable. The library distinguishes itself through a driver-based abstraction layer that automatically detects the most efficient storage mechanism available in the current browser or mobile environme
This library provides a robust, asynchronous key-value storage abstraction for client-side environments, making it a suitable tool for managing persistent application settings and configuration data.
TinyBase is a reactive data store and in-memory relational database designed for client-side state persistence. It serves as a local-first sync engine that merges distributed state using conflict-free replicated data types and logical clocks to ensure deterministic data convergence. The project features a schema validation library that converts external definitions from tools like Zod, Yup, and TypeBox into type-safe store definitions. It provides an infrastructure for real-time collaborative editing, utilizing synchronization with Automerge, Yjs, and PartyKit to maintain consistent state acr
TinyBase provides a reactive, local-first data store that handles persistent state and JSON-compatible data structures, making it a robust choice for managing complex application settings and configuration.
This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d
This is a reactive, offline-first NoSQL database that provides the local persistent storage, cross-platform support, and encryption required for managing complex application state and configuration.
Dynaconf is a configuration management library for Python applications that provides a unified system for loading, validating, and managing settings. It aggregates configuration data from multiple files, environment variables, and external stores into a single object using a defined precedence order. The project distinguishes itself through a layered environment manager that separates settings into distinct profiles, such as development and production. It includes a declarative validation framework to enforce data rules and type constraints during the loading process, as well as an external s
Dynaconf is a robust configuration management library for Python that handles loading, validation, and merging of settings from various sources, though it focuses on application configuration rather than acting as a general-purpose persistent key-value store.
This project provides a React hook for synchronizing component state with browser storage, ensuring data persists across page reloads and browser sessions. It is designed to manage persistent application state while providing hydration-safe initialization to prevent mismatches during the transition from server-side rendering to client-side execution. The library distinguishes itself by including a fallback manager that detects when browser storage is inaccessible, automatically switching to an in-memory state to maintain application continuity. It also supports cross-tab synchronization by li
This library provides a React hook for persistent local storage that automatically handles JSON serialization and reactive state updates, making it a suitable tool for managing application settings within a React environment.
PouchDB is a JavaScript NoSQL document store designed to persist JSON data within web browsers or Node.js environments. It functions as an offline-first data store that caches information on a local device and synchronizes with a remote server when connectivity is available. The database implements the CouchDB API to ensure compatibility for bidirectional data replication. This allows for the synchronization of documents between a local client and remote CouchDB servers to maintain consistency across multiple devices. The project provides capabilities for local browser data storage and remot
PouchDB is a robust document store that provides local, persistent JSON storage for web and Node.js applications, though it is primarily designed for synchronization rather than simple configuration management.
Realm-Cocoa is a NoSQL mobile database engine and reactive object database designed for local data storage on mobile devices. It serves as a non-relational alternative to Core Data and SQLite, storing data as objects rather than tables. The system functions as an encrypted local store that protects sensitive application data using encryption. It provides reactive data synchronization, allowing application objects and user interfaces to update automatically when the underlying database changes.
Realm-Cocoa is a robust local object database that provides persistent storage, reactive updates, and encryption, making it a powerful solution for managing complex application settings and configuration data.
This is a mobile object database and NoSQL local data store that replaces relational tables with a schema-based model. It functions as a reactive data store, using live object observations and change notifications to trigger automatic user interface refreshes. The system provides built-in mobile cloud data synchronization to keep local datasets consistent with a remote server across multiple devices. It also includes security features for encrypted local storage, protecting sensitive on-disk data using at-rest encryption keys and fine-grained access control. Broad capabilities include object
This is a robust mobile object database that provides local persistent storage, reactive updates, and encryption, making it a powerful solution for managing complex application state and configuration.
A cross platform settings plugin for Xamarin and Windows. Unlike other setting libraries in the wild, this library provides several unique features
This library provides a cross-platform solution for managing application settings with local persistent storage, though it lacks built-in encryption and reactive update features.
redux-persist is a state persistence library for Redux that saves and restores store state to a storage engine to maintain data across sessions. It functions as a state rehydration tool and serialization middleware, loading previously saved application state back into the Redux store during the initialization process. The library includes a schema migration utility to transform persisted state data from older versions to newer schemas, ensuring compatibility after application updates. It also provides state serialization transformations to modify state objects before they are written to or re
This library provides persistent, local storage for application state by integrating with Redux, offering features like JSON serialization, schema migration, and cross-platform storage engine support.
| Repository | Stars | Sprache | Lizenz | Letzter Push |
|---|---|---|---|---|
| marcuswestin/store.js | 14K | JavaScript | MIT | |
| orhanobut/hawk | 4K | Java | Apache-2.0 | |
| sindresorhus/electron-store | 5K | JavaScript | MIT | |
| react-native-async-storage/async-storage | 5.1K | Kotlin | MIT | |
| rosedblabs/rosedb | 4.9K | Go | Apache-2.0 | |
| tencent/mmkv | 18.6K | C++ | NOASSERTION | |
| mozilla/localforage | 25.8K | JavaScript | Apache-2.0 | |
| russhwolf/multiplatform-settings | 2.2K | Kotlin | Apache-2.0 | |
| isar/hive | 4.4K | Dart | Apache-2.0 | |
| spf13/viper | 30.3K | Go | MIT |