A columnar SQL database for the browser. Run PostgreSQL-style SQL over durable IndexedDB or OPFS data with no server or WebAssembly module.
Developer toolsTypeScript · MDXGitHub @ericwilhiteOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A high performance frontend database
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A columnar SQL database for the browser. Minnow runs PostgreSQL-style SQL over durable data in
IndexedDB or OPFS. It needs no server and has no WebAssembly module to download or compile.
minnowdb.com has the full documentation, a live SQL and TypeScript console,
and benchmarks that run in your browser.Read the full README ↗><(((('>A columnar SQL database for the browser. Minnow runs PostgreSQL-style SQL over durable data in IndexedDB or OPFS. It needs no server and has no WebAssembly module to download or compile.
npm install @minnowdb/core
minnowdb.com has the full documentation, a live SQL and TypeScript console, and benchmarks that run in your browser.
Experimental API. Minnow is in 0.x, so minor releases can include API and SQL breaking changes. Stored data is stable: block format 2, snapshot formats 1 to 3, IndexedDB schema 8, and OPFS layout 13 are versioned separately and locked — an incompatible future writer must use a new format number. Pin exact package versions. See Versioning, the v1 support policy, and the Changelog.
RETURNING, triggers, stored generated columns, exact decimals, nested JSON/JSONB, zoneless DATE, arrays, enums, sequences, savepoints, and
more. The PostgreSQL compatibility guide lists
exact matches, differences, extensions, and exclusions.@minnowdb/kysely. Kysely's DB type derives from the same schema used for migration, so
tables are declared once, aggregate and built-in results are inferred without output generics,
and typed JSON helpers build nested projections. Both paths use the same SQL engine.MATCH and BM25 without index DDL. Live
queries refresh after relevant commits, including commits from other tabs, with typed Kysely,
keyed-change, bounded-window, and Suspense/SWR-friendly React adapters. A commit updates every
affected query in the same turn, so a screen renders it once.UPDATE. References follow in the same commit, and the old key keeps reading and writing
the row for 10 days, so nothing that held it loses the record. See
Offline sync and rekeying.Minnow is designed for browser-local application data that needs both keyed reads and analytical queries. It does not provide a server, replication, or multi-device sync.
| Package | Purpose |
|---|---|
@minnowdb/core | SQL engine, schema management, workers, storage adapters, and snapshots. |
@minnowdb/kysely | Kysely dialect with typed JSON, search, streaming, and live-query tools. |
@minnowdb/react | React external-store hook for live queries. |
@minnowdb/export | Streaming CSV and NDJSON over direct or worker cursors. |
@minnowdb/devtools | Optional SQL console and database explorer for development and embedded demos. |
Start with Installation and Your first query. The Comparison page explains when IndexedDB, Dexie, SQLite Wasm, PGlite, or DuckDB-Wasm is a better fit.
For coding agents, use llms.txt or add the concise Minnow agent rules to your project.
npm install
npm test # unit tests and the standard SQLLogicTest profile
npm run check # format, types, lint, build, coverage, and SQL tests
npm run test:sql:full # full supported SQLLogicTest profile
npm run test:browser # library and site tests in real browsers, including the SQLLogicTest corpus and multi-tab interaction plans
npm run simulate:interactions # one replayable interaction plan against the shadow model
npm run soak # generative suites on fresh seeds, the simulators included
npm run test:browser:conformance # full SQL corpus and long interaction plans in all three browsers
npm run test:browser:pos # isolated sustained POS correctness and latency checks
npm run test:consumer # install packed libraries in a clean Vite app and run it
npm run site:dev # docs, live console, and browser benchmarks
See Testing and benchmarks for the complete test map, Versioning for release commands, the v1 support policy for the 1.x contract, and the Changelog for release notes and migrations.
MIT — see LICENSE.