Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

核心概念

Project

项目清单声明 package 名称、schema 模块、构建输出、代码生成目标和导出目标。sora checksora buildsora gensora export 都以它为入口。

Schema

Schema 文件描述配置数据的形状。它定义枚举、结构体、联合、表、索引、引用和字段规则。Sora 会先把 schema 归一化成 IR,再进入校验、导出或代码生成。

Table

表是一组命名行。表可以是 list、按某个字段做 key 的 map,或者 singleton。source 元数据说明可编辑数据来自哪里。

表 schema 也会用于生成 Excel 表头这类编辑器投影。电子表格不是契约本身,它只是编辑符合契约的行数据的一种方式。

Value

Sora 会先把源数据单元格校验并转换成公共 value tree,再交给导出器。生成运行时从不同 runtime format 读取同一个形状,因此目标语言可以在 sorajsoncborsora-protobuf 之间切换,而不需要改 schema。

Runtime Format

Runtime format 是生成代码在运行时加载的数据格式。它通过 runtime_format 按语言目标选择。

Generator

Generator 是注册到 codegen registry 的语言后端。内置语言也是普通 registry entry,因此下游扩展可以复用同一条管线。

Exporter

Exporter 负责把校验后的数据写成运行时数据包。导出器 registry 和代码生成分离,因此数据格式和语言目标可以独立演进。

Scope

Schema、字段和表可以声明 scope。构建时可以选择 scope,只生成或导出某个运行环境需要的部分。