# react-native-async-storage/async-storage

**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/react-native-async-storage-async-storage).**

5,034 stars · 480 forks · TypeScript · mit

## Links

- GitHub: https://github.com/react-native-async-storage/async-storage
- Homepage: https://react-native-async-storage.github.io/async-storage/
- awesome-repositories: https://awesome-repositories.com/repository/react-native-async-storage-async-storage.md

## Description

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 storage and restores them on retrieval, along with an in-memory LRU cache that reduces disk reads while maintaining consistency through write-based invalidation. A multi-engine storage adapter abstracts platform-specific persistence backends, enabling flexible backend selection at initialization.

The library covers the full range of local storage tasks: storing, reading, and removing key-value pairs, with persistence that survives app restarts and supports offline data availability. Common use cases include preserving app state, caching frequently accessed data, and storing user preferences like theme or language settings.

## Tags

### Mobile Development

- [React Native Libraries](https://awesome-repositories.com/f/mobile-development/react-native-ecosystem/react-native-libraries.md) — Provides persistent key-value storage for React Native applications across iOS and Android.

### Part of an Awesome List

- [Native Module Bridges](https://awesome-repositories.com/f/awesome-lists/devtools/native-integration/native-module-bridges.md) — Communicates with native storage engines asynchronously via React Native's bridge protocol.

### Data & Databases

- [Cross-Platform Storage Frameworks](https://awesome-repositories.com/f/data-databases/cross-platform-storage-frameworks.md) — Provides a unified key-value storage API that works identically on both iOS and Android.
- [Key-Value Persistence Stores](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores.md) — Stores key-value pairs in local storage so they remain available after the app restarts. ([source](https://cdn.jsdelivr.net/gh/react-native-async-storage/async-storage@main/README.md))
- [Key-Value Stores](https://awesome-repositories.com/f/data-databases/key-value-stores.md) — Retrieves stored values by key from local storage for use anywhere in the application. ([source](https://react-native-async-storage.github.io/async-storage/docs/install))
- [Key Deletion](https://awesome-repositories.com/f/data-databases/key-value-stores/key-deletion.md) — Removes specific key-value pairs from local storage when they are no longer needed. ([source](https://react-native-async-storage.github.io/async-storage/docs/install))
- [Offline-First Persistence](https://awesome-repositories.com/f/data-databases/offline-first-persistence.md) — Stores app data locally so it remains available when the device has no network connection.
- [App Settings Persistence](https://awesome-repositories.com/f/data-databases/key-value-persistence-stores/app-settings-persistence.md) — Preserves user sessions, draft content, or app settings across restarts and app closures.
- [Storage Backend Adapters](https://awesome-repositories.com/f/data-databases/storage-backend-adapters.md) — Abstracts platform-specific persistence backends behind a single AsyncStorage interface.
- [Key-Value](https://awesome-repositories.com/f/data-databases/storage-engines/key-value.md) — Keeps frequently accessed data in local storage to reduce network requests and improve performance.
- [Value Serializers](https://awesome-repositories.com/f/data-databases/storage-engines/key-value/value-serializers.md) — Converts JavaScript values to plain strings for storage and restores types on retrieval.

### Operating Systems & Systems Programming

- [Background I/O Queues](https://awesome-repositories.com/f/operating-systems-systems-programming/asynchronous-i-o-libraries/background-i-o-queues.md) — Enqueues all storage operations on a background thread to prevent blocking the JavaScript thread.

### Development Tools & Productivity

- [In-Memory Cache Invalidations](https://awesome-repositories.com/f/development-tools-productivity/build-artifact-caching/cache-invalidation/in-memory-cache-invalidations.md) — Maintains an in-memory LRU cache of recent keys, invalidating entries on writes for consistency.
- [User Preference Persistence](https://awesome-repositories.com/f/development-tools-productivity/user-preference-persistence.md) — Stores user-chosen settings like theme, language, or notification preferences in a persistent key-value store.
