Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-leveldown

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-leveldown

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

  • 1.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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 implemented for iOS and Android. The iOS bindings will also run on macOS via Catalyst.

My thanks to Giacomo Randazzo (@RAN3000) for contributing the Android bindings to this package.

Usage

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

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 on iOS and the app's persistent files directory on Android. 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.

Testing

This library passes the abstract-leveldown test suite. To run the tests:

# Setup:
cd testapp
yarn install

# To run the tests on iOS:
(cd ios; pod install)
yarn ios

# To run the tests on Android:
yarn android

Alternatives

If you're looking for an implementation with no native code, you may be interested in asyncstorage-down, which implements abstract-leveldown using React Native's built-in AsyncStorage. Note that this approach will be much slower than native LevelDB bindings, particularly on iOS, where AsyncStorage is basically a serialized JSON blob.

Keywords

FAQs

Package last updated on 12 Nov 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc