Skip to content

Repository files navigation

statewalker-db

Database adapters: DuckDB and SQLite (libSQL) for browser and Node.

Packages

Package Description
@statewalker/db-api Driver-agnostic database client interface.
@statewalker/db-duckdb-browser DuckDB WASM driver for browser environments.
@statewalker/db-duckdb-node DuckDB Node.js driver backed by @duckdb/node-api.
@statewalker/db-sqlite-browser libSQL/SQLite WASM driver for browser environments.
@statewalker/db-sqlite-node libSQL/SQLite Node.js driver backed by @libsql/client.

Apps

App Description
sqlite-search-demo Vite demo combining FTS5 + vector search on real SQLite (@sqlite.org/sqlite-wasm, in-browser).

Development

pnpm install
pnpm run build
pnpm run test

pnpm run test runs the Node test suites. The two browser adapters (db-sqlite-browser, db-duckdb-browser) additionally run the shared conformance suite in a real headless Chromium via Vitest browser mode + Playwright:

pnpm exec playwright install chromium   # one-time: fetch the Chromium binary
pnpm run test:browser                    # run both browser adapter suites

pnpm run test:browser fans out to each browser package's own test:browser script (vitest run --config vitest.browser.config.ts). To run just one:

pnpm --filter @statewalker/db-sqlite-browser test:browser
pnpm --filter @statewalker/db-duckdb-browser test:browser

The DuckDB browser suite fetches its WASM bundle from jsDelivr, so it needs outbound network access from the browser; the libSQL suite serves sqlite3.wasm locally (via the config's publicDir) and needs none.

Release

Releases are managed via changesets:

pnpm changeset           # describe the change
pnpm version-packages    # roll versions + regenerate CHANGELOGs
pnpm release-packages    # publish to npm

About

Database drivers: db-api, db-duckdb-browser, db-duckdb-node, db-turso-browser, db-turso-node.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages