VibORM

Prisma-like API. Zero code generation. No WASM. Pure TypeScript.

Schema Definition

Relations are defined inline with the model.

drizzle-schema.tsDrizzle
typescript
viborm-schema.tsVibORM
typescript

Standard Schema Support

Use Zod, Valibot, or ArkType to narrow field validation and define typed JSON columns.

typed-json.tsTyped JSON
typescript
narrowed-validation.tsStandard Schema
typescript
Zod

Most popular schema library

Valibot

Lightweight alternative

ArkType

Fastest runtime validation

Query API

Object-based queries with full type inference.

queries.tsPrisma-like API
typescript

Feature Comparison

FeaturePrismaDrizzle v1Drizzle v2VibORM
Object-based queriesPartialComplete
Zero code generation
Pure TypeScript (no WASM)
Full type inferenceGeneratedPartialPartialFull
Relational queriesLimited
Typed JSON columns
Standard Schema integrationZod/Valibot/ArkType
Exported model schemas
TypeScript schemaPSL file
Relations inline
Filtering by relations
Nested select on relationsPartial
Scalar arrays on MySQL
DISTINCT on all databasesPartialDB-dependentDB-dependent
Consistent feature setDB-dependentDB-dependentDB-dependentAlways

Database Abstraction

Same API across PostgreSQL, MySQL, and SQLite.

Scalar Arrays

MySQL doesn't support array columns natively. VibORM emulates them with JSON — same API, same types, any database.

DISTINCT Queries

DISTINCT ON isn't available everywhere. VibORM provides consistent distinct behavior across all supported databases.

Switch Anytime

Start with SQLite for development, deploy to PostgreSQL. Your queries don't change — the ORM handles the translation.

Features

Chainable API

Chainable schemas with relations defined inline.

Inline Relations

Relations defined inline with include, nested select, and relation filters.

Full Type Safety

Every query, filter, and result is typed.

Pure TypeScript

No code generation, no WASM engine, no binary downloads.

Exported Model Schemas

Validation schemas auto-generated from your models using our internal validation library.

Standard Schema Integration

Use Zod, Valibot, or ArkType to narrow field validation and type JSON columns.

Database Abstraction

Scalar arrays on MySQL, DISTINCT on SQLite. Database limitations are abstracted away.

Installation

$npm install viborm