Skip to content

ormGo·PHP·Python·Rust·TypeScript 공통 ORM 인터페이스

스키마에서 query·row·relation 타입을 생성하고 언어별 드라이버로 실행한다.

공통 client contract의 query ​

Go ​

go
count, err := model.Author().Connect(slave1).GetCountByServiceSeq(7)

PHP ​

php
$count = (new Author)->connect($slave1)->getCountByServiceSeq(7);

Rust ​

rust
let count = Author::new().connect(&slave1).get_count_by_service_seq(7).await?;

TypeScript ​

ts
const count = await new Author().connect(slave1).getCountByServiceSeq(7)

Python ​

python
count = Author().connect(slave1).get_count_by_service_seq(7)

Go model.Author()은 *model.AuthorModel을 반환한다. Rust와 TypeScript는 비동기 결과를, Python은 동기 결과를 사용한다. 문법은 언어 관례를 따르지만 인자 의미, 자료 구조 역할, 실행 규칙은 같다.

사용법에서 연결, 조회, 쓰기, relation을 확인한다. 구성요소 도표에서 소유 규칙을 확인한다.

구현 상태 ​

config/parity.json은 Go, PHP, PHP-extension, Rust, TypeScript, Python 여섯 implementation을 선언한다. 위 예시는 library API의 문법을 보여 준다. PHP-extension도 공통 implementation 집합에 속하지만, 아직 끝나지 않은 native 동작과 database 근거는 체크리스트에 남아 있다. 공통 protocol은 caller process 안에서 planning하도록 정하며, 검증한 범위는 구현 대조표에 적혀 있다.

DSL · 스키마 · IR / Plan · 복합 query 예제 · 문서 빌드와 배포 · English

MIT License · Go / PHP / Rust / TypeScript