Skip to content

ormCommon ORM Interface for Go, PHP, Rust, and TypeScript

Generate query, row, and relation types from a schema and execute them with language-specific drivers.

One query in four clients

Go

go
count, err := gen.Battle().Using(ctx, db).GetCountByServiceSeq(7)

PHP

php
$count = Battle::query()->using($db)->getCountByServiceSeq(7);

Rust

rust
let count = battle::query().using(&db).get_count_by_service_seq(7).await?;

TypeScript

ts
const count = await Battle().using(db).getCountByServiceSeq(7)

Go gen.Battle() returns *gen.BattleQuery. Go passes ctx with the executor, and Rust and TypeScript use asynchronous results. Syntax follows each language; argument meaning, data structure roles, and execution rules are shared.

Read the guide for binding, reads, writes, and relations. See the component diagram for ownership rules.

Implementation status

The implemented clients are Go, PHP, Rust, and TypeScript. All four clients provide generated entity APIs and native database execution. See the implementation matrix, checklist, public source readiness plan, and S7 work list for verification scope and remaining work.

DSL · Schema · IR / Plan · Complex query example · Documentation build and deployment · 한국어 문서

MIT License · Go / PHP / Rust / TypeScript