Getting Started
direct-sqlite is a high-performance, type-safe SQLite database binding layer optimized for modern JavaScript runtimes. It eliminates heavy intermediate ORM parsing layers to execute queries with near-zero runtime abstraction overhead.
Installation
Section titled “Installation”Install the package alongside your preferred workspace database driver dependencies.
pnpm add direct-sqlitenpm install direct-sqliteyarn add direct-sqliteQuick Start Guide
Section titled “Quick Start Guide”Follow these steps to instantiate your database instance and run your first compile-time validated query.
-
Define Your Schema Struct
Create your tables using the structural column schema builders:
src/db/schema.ts import { table, text, integer } from '@direct-sqlite/schema';export const users = table('users', {id: integer('id').primaryKey(),name: text('name').notNull(),email: text('email').unique(),}) -
Initialize the Core Driver Interface
Pass your native runtime SQLite database handle directly into the core wrapper instance:
src/db/index.ts import { Database } from '@direct-sqlite/core';import SQLite from 'better-sqlite3';import * as schema from './schema';const nativeDb = new SQLite('local.db');// Instantiate the core direct binding agentexport const db = new Database(nativeDb, { schema });src/db/index.ts import { Database } from '@direct-sqlite/core';import { DatabaseSync } from 'node:sqlite';import * as schema from './schema';const nativeDb = new DatabaseSync('local.db');// Instantiate the core direct binding agentexport const db = new Database(nativeDb, { schema });src/db/index.ts import { Database } from '@direct-sqlite/core';import SQLite from 'bun:sqlite';import * as schema from './schema';const nativeDb = new SQLite('local.db');// Instantiate the core direct binding agentexport const db = new Database(nativeDb, { schema }); -
Execute Type-Safe Queries
Import your database instance context layer directly to leverage auto-complete and full mutation pipelines:
import { db } from './db';import { users } from './db/schema';// Fully type-safe result dataset arrays matching your table schemaconst activeUsers = await db.select().from(users).execute();console.log(activeUsers);
Next Architecture Steps
Section titled “Next Architecture Steps”- Database Configuration — Configure cache sizing and database optimizations.
- Query & Mutation Builders — Leverage the underlying fluent API mechanics for conditional filtering clauses.