@potluckdb/potluckdb-react-native
v0.1.0
Published
potluckdb for React Native: the native SDK on iOS and Android with the API of the Node package
Readme
potluckdb for React Native
React Native applications use a module of their own, which binds the C SDK for iOS and Android and exposes the application API of the Node package with the same names. The JavaScript thread calls it through JSI; a query returns the same rows and columns as on Node.
Installation
npm install @potluckdb/potluckdb-react-native
cd ios && pod installAutolinking registers the module on both platforms.
On Android the application sets POTLUCKDB_CONFIG_DIR under its
files directory before its first potluckdb call, as the
licensing page requires.
React Native 0.87 or newer with the New Architecture; iOS 15.1 or newer, the floor of React Native 0.87; Android 13 (API level 33) or newer. An Expo application uses a development build, because Expo Go loads no native module outside the Expo SDK.
Usage
import { documentDirectory, open, Remote } from "@potluckdb/potluckdb-react-native";
const remote = Remote.fromDirectory(`${documentDirectory}/remote`); // a bucket replaces this in production; see the Node installation page
const db = await open(`${documentDirectory}/notes.potluckdb`, remote);The React Native page gives the quickstart, which opens the database in the document directory the module reports, inserts a note and renders the table.
Values
SQL integers arrive as numbers, exactly as on Node: a value beyond
±2^53 fails with unsafe_integer, and a database opened with
readBigInts: true returns every SQL integer as a bigint instead.
Bigints bind as integers. BLOBs arrive as Uint8Array values, and
Uint8Array and ArrayBuffer both bind as BLOBs.
See LICENSE.
