# mrousavy/react-native-mmkv

**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/mrousavy-react-native-mmkv).**

8,404 stars · 339 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/mrousavy/react-native-mmkv
- Homepage: https://mrousavy.com
- awesome-repositories: https://awesome-repositories.com/repository/mrousavy-react-native-mmkv.md

## Topics

`android` `cpp` `database` `fast` `ios` `jni` `jsi` `localstorage` `mmkv` `native-module` `nitro` `react` `react-native` `storage` `turbomodule`

## Description

react-native-mmkv is a synchronous mobile persistence system that provides an encrypted key-value store for mobile applications. It serves as a high-performance wrapper for the MMKV storage engine, eliminating asynchronous overhead by reading and writing values directly to disk.

The project distinguishes itself through shared app group storage, which allows data access across multiple application extensions via a shared filesystem directory. It also provides state-synced storage hooks that automatically trigger component updates when stored key-value pairs change.

The system covers a broad range of mobile data management capabilities, including multi-instance storage isolation, data migration utilities, and storage health optimization. Security is handled through private-key encryption to protect persisted data and ensure storage file confidentiality.

## Tags

### Programming Languages & Runtimes

- [Synchronous Native Execution](https://awesome-repositories.com/f/programming-languages-runtimes/synchronous-native-execution.md) — Eliminates asynchronous promise latency by executing data retrieval and persistence through blocking C++ calls on the main thread.
- [JavaScript Native Interfaces](https://awesome-repositories.com/f/programming-languages-runtimes/javascript-native-interfaces.md) — Provides direct C++ JSI bindings to eliminate serialization overhead between JavaScript and the native storage engine.

### Data & Databases

- [Application State Synchronization](https://awesome-repositories.com/f/data-databases/cloud-storage-synchronization/application-state-synchronization.md) — Syncs application state with local storage using hooks that trigger immediate UI updates when values change.
- [Synchronous Implementations](https://awesome-repositories.com/f/data-databases/key-value-storage-wrappers/synchronous-implementations.md) — Provides a high-performance synchronous key-value store that eliminates the overhead of asynchronous calls. ([source](https://cdn.jsdelivr.net/gh/mrousavy/react-native-mmkv@main/README.md))
- [Persistence Layers](https://awesome-repositories.com/f/data-databases/persistence-layers.md) — Provides a synchronous persistence layer that reads and writes values directly to disk to eliminate asynchronous overhead.
- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Implements a high-performance key-value storage engine based on MMKV for mobile applications.
- [Cross-Target Data Sharing](https://awesome-repositories.com/f/data-databases/cross-target-data-sharing.md) — Enables data access across a main application and its extensions by using a shared filesystem directory. ([source](https://cdn.jsdelivr.net/gh/mrousavy/react-native-mmkv@main/README.md))
- [Per-Instance Data Isolation](https://awesome-repositories.com/f/data-databases/multi-instance-storage/per-instance-data-isolation.md) — Isolates data sets into separate containers using unique identifiers to decouple global settings from user-specific data. ([source](https://cdn.jsdelivr.net/gh/mrousavy/react-native-mmkv@main/README.md))
- [User Data Management](https://awesome-repositories.com/f/data-databases/user-data-management.md) — Manages isolated storage containers to organize global settings and user-specific information on mobile devices.

### Mobile Development

- [Local Persistence Modules](https://awesome-repositories.com/f/mobile-development/react-native-ecosystem/react-native-libraries/local-persistence-modules.md) — Serves as a high-performance local storage solution specifically designed for the React Native ecosystem.
- [Shared App Instances](https://awesome-repositories.com/f/mobile-development/shared-app-instances.md) — Allows a main application and its extensions to read and write the same data via a shared app group directory.

### Operating Systems & Systems Programming

- [Memory-Mapped I/O](https://awesome-repositories.com/f/operating-systems-systems-programming/memory-mapped-i-o.md) — Uses memory-mapped file I/O to enable near-instantaneous read and write operations by mapping files directly into virtual address space.

### Security & Cryptography

- [Encrypted Device Persistence](https://awesome-repositories.com/f/security-cryptography/encrypted-device-persistence.md) — Protects sensitive key-value data on mobile devices using private-key encryption to prevent unauthorized file access.
- [Encrypted Key-Value Stores](https://awesome-repositories.com/f/security-cryptography/encrypted-key-value-stores.md) — Provides a secure key-value storage solution that protects persisted data using private key encryption.
- [Symmetric Encryption](https://awesome-repositories.com/f/security-cryptography/symmetric-encryption.md) — Employs symmetric encryption to protect persisted data before it is written to the disk.
- [Storage Encryption](https://awesome-repositories.com/f/security-cryptography/storage-encryption.md) — Provides private-key encryption for key-value pairs to ensure the confidentiality of the underlying storage files. ([source](https://cdn.jsdelivr.net/gh/mrousavy/react-native-mmkv@main/README.md))
- [App Group Directories](https://awesome-repositories.com/f/security-cryptography/storage-encryption/shared-storage-configurations/app-group-directories.md) — Points the storage engine to a shared filesystem directory to enable data access across multiple application extensions.

### User Interface & Experience

- [Persistence Sync Hooks](https://awesome-repositories.com/f/user-interface-experience/form-input-components/toggle-switches/state-hooks/persistence-sync-hooks.md) — Offers state-synced storage hooks that automatically trigger component updates when stored key-value pairs change.
- [Reactive State Syncing](https://awesome-repositories.com/f/user-interface-experience/state-driven-ui-controllers/reactive-state-syncing.md) — Implements a callback mechanism that notifies JavaScript subscribers of native data changes to trigger reactive UI updates.

### Web Development

- [React State Bindings](https://awesome-repositories.com/f/web-development/react-state-bindings.md) — Ships state-synced storage hooks that automatically trigger React component updates when stored values change. ([source](https://cdn.jsdelivr.net/gh/mrousavy/react-native-mmkv@main/README.md))
