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

@microbit/capacitor-sqlite-vanilla

v0.1.0

Published

Minimal Capacitor SQLite plugin using platform-provided SQLite (no encryption)

Readme

@microbit/capacitor-sqlite-vanilla

Minimal Capacitor 7 plugin for SQLite on iOS and Android.

No encryption (no crypto export drama). No web support.

Stumbled across this? This plugin has intentionally limited scope and has had no real world use outside of one app. Your goals might be better met via https://github.com/capacitor-community/sqlite or perhaps https://capawesome.io/plugins/sqlite/ (commercial).

Supported versions

Android

Uses androidx.sqlite:sqlite-bundled which embeds SQLite compiled from source, providing a consistent and up-to-date version regardless of the device's OS. This avoids the fragmentation of Android's system SQLite.

iOS

Uses the system sqlite3 framework. The SQLite version depends on the user's OS version — the minimum is SQLite 3.32.3 (iOS 14, the lowest version supported by Capacitor 7). Notable features unavailable on older iOS versions include:

  • RETURNING clause and ALTER TABLE DROP COLUMN (3.35.0, iOS 15+)
  • STRICT tables (3.37.0, iOS 15.4+)
  • Built-in JSON operators -> / ->> (3.38.0, iOS 16+)
  • RIGHT and FULL OUTER JOIN (3.39.0, iOS 16+)

BLOB handling

BLOB columns in query results are returned as arrays of unsigned byte values (0–255), e.g. [72, 101, 108, 108, 111]. This matches the behaviour of the Capacitor community SQLite plugin but is inefficient for large values — consider storing binary data as base64-encoded TEXT instead.

API

Bridge methods

| Method | Description | | --------------------------------------- | -------------------------------------------------- | | open({name}) | Open or create a database | | close({name}) | Close a database | | execute({name, statements}) | Execute raw SQL (DDL, multi-statement) | | run({name, statement, values?}) | Parameterized write, returns {changes, lastId} | | query({name, statement, values?}) | Parameterized read, returns {values: [...]} | | executeSet({name, set, transaction?}) | Multiple parameterized statements in a transaction | | isDBOpen({name}) | Check if a database is open | | deleteDatabase({name}) | Delete a database file | | getVersion({name}) | Get SQLite user_version pragma |

TypeScript wrappers

SQLiteConnection and SQLiteDBConnection provide a convenience API over the bridge:

import { SQLiteVanilla, SQLiteConnection } from '@microbit/capacitor-sqlite-vanilla';

const db = await sqlite.createConnection('my-db');

await db.execute('CREATE TABLE IF NOT EXISTS items (id TEXT PRIMARY KEY, name TEXT)');
await db.run('INSERT INTO items (id, name) VALUES (?, ?)', ['1', 'Example']);
const { values } = await db.query('SELECT id, name FROM items');
await db.close();

Build

npm install
npm run build

License

This software is under the MIT open source license.

SPDX-License-Identifier: MIT

We use dependencies via the NPM registry as specified by the package.json file under common Open Source licenses.

Full details of each package can be found by running license-checker:

$ npx license-checker --direct --summary --production

Omit the flags as desired to obtain more detail.

Code of conduct

Trust, partnership, simplicity and passion are our core values we live and breathe in our daily work life and within our projects. Our open-source projects are no exception. We have an active community which spans the globe and we welcome and encourage participation and contributions to our projects by everyone. We work to foster a positive, open, inclusive and supportive environment and trust that our community respects the micro:bit code of conduct. Please see our code of conduct which outlines our expectations for all those that participate in our community and details on how to report any concerns and what would happen should breaches occur.