High-performance, type-safe SQLite database operations for modern architectures.
direct-sqlite is a minimalist, zero-allocation database binding layer. It removes the heavy intermediate ORM parsing layers found in traditional tools, allowing you to execute queries with near-zero runtime abstraction overhead while maintaining full TypeScript compile-time validation.
- 🚀 Zero Overhead: Direct bindings to native SQLite drivers without unnecessary serialization/deserialization.
- 🛡️ Compile-Time Safe: Full schema-driven type inference for builders and results.
- 🛠️ Runtime Agnostic: Works seamlessly with
better-sqlite3,node:sqlite,bun:sqlite, and other native handlers. - 🏗️ Fluent API: Intuitive, chainable builders for complex queries and mutations.
pnpm add direct-sqlite-
Define Schema
import { table, text, integer } from '@direct-sqlite/schema'; export const users = table('users', { id: integer('id').primaryKey(), name: text('name').notNull(), });
-
Initialize
import { Database } from '@direct-sqlite/core'; import { DatabaseSync } from 'node:sqlite'; import * as schema from './schema'; const db = new Database(new DatabaseSync('app.db'), { schema });
-
Query
const allUsers = await db.select().from(users).execute();
Comprehensive guides, API references, and configuration details are available on our documentation site.
Contributions are welcome! Please check our contributing guidelines before submitting a PR.
MIT © [Your Name/Organization]