react-native-leveldown

React Native native module for LevelJS, compatible with abstract-leveldown


Keywords
react-native, leveldb
License
MIT
Install
npm install react-native-leveldown@1.0.1

Documentation

react-native-leveldown

This library implements an abstract-leveldown compatible interface to LevelDB for React Native. The implementation is a thin Native Module binding directly to the original C++ implementation of LevelDB.

The native bindings are currently implemented only for iOS (and macOS via Catalyst). A patch implementing Android bindings would be welcome! In the meantime, you can get a compatible interface via level-js on top of indexeddbshim on top of expo-sqlite, but that's obviously much much slower.

Usage

Install via yarn add react-native-leveldown. Make sure to cd ios; pod install to build the native module.

This module implements the interface defined in abstract-leveldown, so you can either use it directly as documented there or somewhat more conveniently using the levelup wrapper.

Typical usage:

import RNLeveldown from "react-native-leveldown";
import LevelUp from "levelup";

const db = LevelUp(new RNLeveldown("myDatabaseName"));
await db.put("hello", "world");
await db.get("hello") // # => "world"
await db.close();

Note that databases are stored in the app container's Documents directory. In the future, the constructor API should probably be extended to add an option to store it instead in some semi-durable cache location, or an ephemeral temporary directory.