Become a Gold Sponsor

Drizzle <> PGlite

This guide assumes familiarity with:

According to the official repo, PGlite is a WASM Postgres build packaged into a TypeScript client library that enables you to run Postgres in the browser, Node.js and Bun, with no need to install any other dependencies. It is only 2.6mb gzipped.

It can be used as an ephemeral in-memory database, or with persistence either to the file system (Node/Bun) or indexedDB (Browser).

Unlike previous “Postgres in the browser” projects, PGlite does not use a Linux virtual machine - it is simply Postgres in WASM.

Step 1 - Install packages

npm
yarn
pnpm
bun
npm i drizzle-orm @electric-sql/pglite
npm i -D drizzle-kit

Step 2 - Initialize the driver and make a query

In-Memory
In directory
With extra config options
import { drizzle } from 'drizzle-orm/connect';

const db = drizzle('pglite');

await db.select().from(...);

If you need a synchronous connection, you can use our additional connection API, where you specify a driver connection and pass it to the Drizzle instance.

import { PGlite } from '@electric-sql/pglite';
import { drizzle } from 'drizzle-orm/pglite';

// In-memory Postgres
const client = new PGlite();
const db = drizzle(client);

await db.select().from(users);

What’s next?