Skip to content

proj-airi/duckdb-wasm

Repository files navigation

DuckDB WASM

Easy to use wrapper and Drizzle ORM driver for DuckDB WASM

Web browser based Playground, try it!

Note

Usage notes (as of Apr 12, 2025)

While using @proj-airi/duckdb-wasm directly or indirectly with Vite, you may encounter the following error:

Cannot read file: .../node_modules/.pnpm/@[email protected]/node_modules/@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js?url

    node_modules/.pnpm/@[email protected]/node_modules/@proj-airi/duckdb-wasm/dist/bundles/import-url-browser.mjs:3:26:
      3 β”‚ import mvpMainWorker from '@duckdb/duckdb-wasm/dist/duckdb-browser-mvp.worker.js?url';
        β•΅                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This is due to an open issue with Vite, as a workaround, you can try excluding @proj-airi/duckdb-wasm in optimizeDeps in your vite.config.ts:

export default defineConfig({
  // ...
  optimizeDeps: {
    exclude: ['@proj-airi/duckdb-wasm']
  }
})

See also: vitejs/vite#10838

Usage

ni @proj-airi/drizzle-duckdb-wasm -D # from @antfu/ni, can be installed via `npm i -g @antfu/ni`
pnpm i @proj-airi/drizzle-duckdb-wasm -D
yarn i @proj-airi/drizzle-duckdb-wasm -D
npm i @proj-airi/drizzle-duckdb-wasm -D
import { drizzle } from '@proj-airi/drizzle-duckdb-wasm'

const db = drizzle('duckdb-wasm://?bundles=import-url', { schema })
const results = await db.execute('SELECT count(*)::INTEGER as v FROM generate_series(0, 100) t(v)')
console.log(results) // Output [{ v: 101 }]

// Remember to close / dispose the resources.
await db.$client.close()

Packages

Development

pnpm i

Start the Drizzle DuckDB WASM playground locally:

pnpm -F @proj-airi/drizzle-duckdb-wasm play:dev

Note

For @antfu/ni users, you can

nr -F @proj-airi/drizzle-duckdb-wasm play:dev

About

πŸ¦†πŸ“Š Easy to use wrapper and Drizzle ORM driver for DuckDB WASM

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 5

Languages