{"id":40848,"library":"drizzle-orm-crsqlite-wasm","title":"Drizzle ORM CR-SQLite WASM adapter","description":"Drizzle ORM adapter for CR-SQLite WASM (vlcn) enabling Drizzle's query building and migrations in browser environments. Current version 0.0.7 targets Drizzle ORM ^0.43.1 and @vlcn.io/xplat-api ^0.15.0. It uses Web Crypto for hashing instead of Node's crypto. This package is intended as a temporary solution until it merges into official drizzle-orm. Requires manual migration processing via glob imports and SHA-256 hash generation.","status":"active","version":"0.0.7","language":"javascript","source_language":"en","source_url":"https://github.com/Sheraff/drizzle-orm-crsqlite-wasm","tags":["javascript","drizzle","orm","sqlite","wasm","crsqlite","vlcn","typescript"],"install":[{"cmd":"npm install drizzle-orm-crsqlite-wasm","lang":"bash","label":"npm"},{"cmd":"yarn add drizzle-orm-crsqlite-wasm","lang":"bash","label":"yarn"},{"cmd":"pnpm add drizzle-orm-crsqlite-wasm","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; Drizzle ORM core required for query building and schema definitions","package":"drizzle-orm","optional":false},{"reason":"Peer dependency; provides CR-SQLite WASM initialization and SQLite binding","package":"@vlcn.io/xplat-api","optional":false}],"imports":[{"note":"ESM-only package; CommonJS require() will not work.","wrong":"const { drizzle } = require('drizzle-orm-crsqlite-wasm')","symbol":"drizzle","correct":"import { drizzle } from 'drizzle-orm-crsqlite-wasm'"},{"note":"migrate is exported from a subpath, not the main entry.","wrong":"import { migrate } from 'drizzle-orm-crsqlite-wasm'","symbol":"migrate","correct":"import { migrate } from 'drizzle-orm-crsqlite-wasm/migrator'"},{"note":"The crsqlite-wasm package is under @vlcn.io scope, not standalone.","wrong":"import initWasm from 'crsqlite-wasm'","symbol":"crsqliteWasm","correct":"import { initWasm } from '@vlcn.io/crsqlite-wasm'"}],"quickstart":{"code":"import { initWasm } from '@vlcn.io/crsqlite-wasm';\nimport { drizzle, migrate } from 'drizzle-orm-crsqlite-wasm';\nimport { migrate } from 'drizzle-orm-crsqlite-wasm/migrator';\nimport * as schema from './schema';\n\nasync function main() {\n  const sqlite = await initWasm();\n  const sql = await sqlite.open('test');\n  const db = drizzle(sql, { schema, logger: true });\n  const migrations = []; // preprocessed migration objects\n  await migrate(db, { migrations });\n  const countries = await db.select().from(schema.countries).all();\n  console.log(countries);\n}\nmain().catch(console.error);","lang":"typescript","description":"Shows setup with CR-SQLite WASM init, Drizzle DB creation, and running a migration then query."},"warnings":[{"fix":"Watch GitHub for merges; pin dependency versions.","message":"This package is unofficial and may break when Drizzle ORM or CR-SQLite WASM update. The goal is to merge into drizzle-orm, so APIs may change.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Follow the README instructions to create migration index, hash function, and getMigrations helper.","message":"Migrations require manual preprocessing: you must export SQL via import.meta.glob and generate SHA-256 hashes using Web Crypto. There is no built-in migration folder handler.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use a polyfill or run only in modern browser/Deno/Bun with Web Crypto.","message":"This adapter only works in browsers or environments with Web Crypto API (globalThis.crypto.subtle). It will not work in Node.js <18 or older browsers.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use import syntax and ensure your project is configured for ESM.","message":"The package is ESM-only. Using require() will throw a runtime error.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'-256':75 '/xplat-api':37 '0.0.7':29 '0.15.0':38 '0.43.1':33 'adapt':7,10 'browser':25 'build':21 'cr':4,13 'cr-sqlite':3,12 'crsqlite':83 'crypto':42,49 'current':27 'drizzl':1,8,18,31,64,79 'drizzle-orm':63 'enabl':17 'environ':26 'generat':77 'glob':71 'hash':44,76 'import':72 'instead':45 'intend':53 'javascript':78 'manual':67 'merg':60 'migrat':23,68 'node':47 'offici':62 'orm':2,9,32,65,80 'packag':51 'process':69 'queri':20 'requir':66 'sha':74 'solut':57 'sqlite':5,14,81 'target':30 'temporari':56 'typescript':85 'use':40 'version':28 'via':70 'vlcn':16,84 'vlcn.io':36 'vlcn.io/xplat-api':35 'wasm':6,15,82 'web':41","created_at":"2026-06-04T18:49:33.005314+00:00","updated_at":"2026-06-04T18:49:33.005314+00:00","problems":[{"fix":"Run `npm install drizzle-orm-crsqlite-wasm`","cause":"Package not installed or missing from node_modules.","error":"Error: Cannot find module 'drizzle-orm-crsqlite-wasm'"},{"fix":"Use `import { drizzle } from 'drizzle-orm-crsqlite-wasm'`","cause":"Using default import instead of named import.","error":"TypeError: drizzle is not a function"},{"fix":"Use `import { migrate } from 'drizzle-orm-crsqlite-wasm/migrator'`","cause":"Importing migrate from the wrong path.","error":"TypeError: migrate is not a function"},{"fix":"Ensure you are in a secure context (HTTPS/localhost) and use modern browser/Deno/Bun.","cause":"Running in an environment without Web Crypto API (e.g., older Node.js, insecure context).","error":"Error: crypto.subtle is undefined"},{"fix":"Add \"type\": \"module\" to package.json or rename file to .mjs.","cause":"Project not configured as ESM or using .mjs extension.","error":"SyntaxError: Cannot use import statement outside a module"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/Sheraff/drizzle-orm-crsqlite-wasm#readme","github":"https://github.com/Sheraff/drizzle-orm-crsqlite-wasm","docs":null,"changelog":null,"pypi":null,"npm":"drizzle-orm-crsqlite-wasm","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}