Async Storage is an asynchronous, unencrypted, persistent key-value storage solution for your React Native application. It provides a simple API compatible with the Web Storage API, with additional extensions for batch operations and multi-database support.
- Android (SQLite)
- iOS (SQLite)
- macOS (SQLite)
- visionOS (legacy fallback, single database only)
- Web (IndexedDB backend)
- Windows (legacy fallback, single database only)
Compatibility table for React Native:
| React Native | Minimum Version |
|---|---|
| ios/android | 0.76 |
| macOS | 0.78 |
| visionOS | 0.79 |
| windows | 0.79 |
Other components:
| Component | Version |
|---|---|
| kotlin | 2.1.0 |
| android min sdk | 24 |
| ios min target | 13 |
| macOS min target | 12 |
# Using npm
npm install @react-native-async-storage/async-storage
# Using yarn
yarn add @react-native-async-storage/async-storageInside your android/build.gradle(.kts) file, add link to local maven repo:
allprojects {
repositories {
// ... others like google(), mavenCentral()
maven {
url = uri(project(":react-native-async-storage_async-storage").file("local_repo"))
// or uri("path/to/node_modules/@react-native-async-storage/async-storage/android/local_repo")
}
}
}Install cocoapods dependencies:
# inside macos/ios directory
pod installimport { createAsyncStorage } from "@react-native-async-storage/async-storage";
// create a storage instance
const storage = createAsyncStorage("appDB");
async function demo() {
// save value under "userToken" key
await storage.setItem("userToken", "abc123");
// read value stored at "userToken" key
const token = await storage.getItem("userToken");
console.log("Stored token:", token); // abc123
// remove value from storage
await storage.removeItem("userToken");
}Head over to Usage page to learn more.
MIT