Schema Definition
Relations are defined inline with the model.
typescripttypescriptStandard Schema Support
Use Zod, Valibot, or ArkType to narrow field validation and define typed JSON columns.
typescripttypescriptMost popular schema library
Lightweight alternative
Fastest runtime validation
Query API
Object-based queries with full type inference.
typescriptFeature Comparison
| Feature | Prisma | Drizzle v1 | Drizzle v2 | VibORM |
|---|---|---|---|---|
| Object-based queries | ✓ | ✗ | Partial | Complete |
| Zero code generation | ✗ | ✓ | ✓ | ✓ |
| Pure TypeScript (no WASM) | ✗ | ✓ | ✓ | ✓ |
| Full type inference | Generated | Partial | Partial | Full |
| Relational queries | ✓ | Limited | ✓ | ✓ |
| Typed JSON columns | ✗ | ✗ | ✗ | ✓ |
| Standard Schema integration | ✗ | ✗ | ✗ | Zod/Valibot/ArkType |
| Exported model schemas | ✗ | ✗ | ✗ | ✓ |
| TypeScript schema | PSL file | ✓ | ✓ | ✓ |
| Relations inline | ✓ | ✗ | ✗ | ✓ |
| Filtering by relations | ✓ | ✗ | ✓ | ✓ |
| Nested select on relations | ✓ | ✗ | Partial | ✓ |
| Scalar arrays on MySQL | ✗ | ✗ | ✗ | ✓ |
| DISTINCT on all databases | Partial | DB-dependent | DB-dependent | ✓ |
| Consistent feature set | DB-dependent | DB-dependent | DB-dependent | Always |
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.