npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@remelondb/driver-rn

v0.3.0

Published

remelonDB SqliteDriver for React Native: the default expo-sqlite adapter. For bundled SQLite without an Expo dependency, see @remelondb/driver-rn-cpp.

Readme

@remelondb/driver-rn

The React Native driver for remelonDB: a thin adapter over expo-sqlite, which owns the native SQLite build on both platforms.

Install expo-sqlite as an Expo module and include it in the app's native build. The driver works in Expo development builds and bare React Native apps.

Ids need a random source

React Native has no WebCrypto: globalThis.crypto is undefined on Hermes. Record id generation requires crypto.getRandomValues, and Database.open refuses to open without a working random source. Pass expo-crypto when opening the database:

import * as Crypto from 'expo-crypto';

const db = await Database.open({
  driver,
  schema,
  name,
  randomSource: Crypto.getRandomValues,
});

Alternatively, install react-native-get-random-values, rebuild the app, and import it before opening the database:

import 'react-native-get-random-values';

Adding that import without rebuilding fails at Database.open with 'RNGetRandomValues' could not be found. See runtimes.md.

Usage

import { Database } from '@remelondb/core';
import { RnSqliteDriver } from '@remelondb/driver-rn';

const db = await Database.open({
  driver: new RnSqliteDriver(),
  schema,
  name: 'app.db', // or ':memory:'
});

Apps should wrap the open in createDatabaseManager (core) and drive UI from useDatabaseState (@remelondb/core/react) — the same bootstrap as web, with the takeover callback simply unused on native.

Requires expo-sqlite (peer dependency): npx expo install expo-sqlite.

The optional C++ driver

@remelondb/driver-rn-cpp is the same seam implemented as a pure C++ TurboModule with a bundled, pinned SQLite — no Expo dependency, at the cost of requiring a native build. The two export the same class name, so switching is one import change. Choose it when you need a specific SQLite version or want zero dependencies between remelonDB and Expo.

Both drivers are proven by the same @remelondb/core/conformance suite; which one an app injects into Database.open is the whole difference.