Skip to content

unreal-orm

Type-safe SurrealDB queries with TypeScript without abstractions

Native First

Stays close to SurrealDB’s native capabilities, avoiding unnecessary abstractions that hide SurrealDB’s powerful features.

Type Safety

Full TypeScript type inference for your schema, queries, and results without runtime overhead.

Schema Generation

Generate valid SurrealDB schema definitions directly from your TypeScript code.

Query Building

Type-safe query building that mirrors SurrealQL syntax while providing autocomplete and type checking.

// Define your schema
const User = Table.define({
name: 'user',
fields: {
name: Field.string(),
email: Field.string({
assert: 'string::is::email($value)'
}),
createdAt: Field.datetime({
default: 'time::now()'
})
}
});
// Type-safe queries
const users = await User.select(db, {
where: 'email LIKE $pattern',
limit: 10
}, { pattern: '%@example.com' });