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

运行时格式

按 codegen target 选择 runtime format:

[codegen.rust]
runtime_format = "sora"

Runtime format 是生成代码能加载的数据格式。它们对应导出格式:

Codegen runtime_formatRequired Export
sorabinary
jsonjson
cborcbor
sora-protobufsora-protobuf

这个设置不会改变 Excel、CSV、TOML、JSON、YAML 或 schema 文件。它只决定目标语言生成什么 loader。选定的 runtime format 必须在项目 build 中有匹配的 export。

支持矩阵

Targetsorajsoncborsora-protobuf
Rustself-containedmanaged dependencymanaged dependencymanaged dependency
Kotlinself-containedmanaged dependencymanaged dependencymanaged dependency
C#self-containedmanaged dependencymanaged dependencymanaged dependency
Javaself-containedmanaged dependencymanaged dependencymanaged dependency
Scalaself-containedmanaged dependencymanaged dependencymanaged dependency
Goself-containedmanaged dependencymanaged dependencymanaged dependency
TypeScriptself-containedmanaged dependencymanaged dependencymanaged dependency
JavaScriptself-containedmanaged dependencymanaged dependencymanaged dependency
Pythonself-containedmanaged dependencymanaged dependencymanaged dependency
Dartnot supportedstandard libraryuser adapteruser adapter
Godotnot supportedstandard librarynot supportednot supported
Cself-containednot supportednot supportednot supported
C++self-containednot supportednot supportednot supported
Erlangself-containeduser adapteruser adapteruser adapter
Luaself-containeduser adapteruser adapteruser adapter

依赖类型含义:

KindMeaning
self-contained生成 runtime 内置 decoder。
standard library生成 runtime 使用语言标准库。
managed dependency生成 runtime 预期使用该生态的常规 package dependency。
user adapter生成 runtime 暴露 adapter hook,由应用提供具体 decoder。

如何选择

目标支持时,优先用 sora 获得原生 Sora binary bundle。

需要更强可检查性、工具友好性或平台接入简单性时,用 json

已有 CBOR 依赖,并希望使用通用紧凑二进制 value format 时,用 cbor

运行环境偏好 Protobuf transport,但仍想保留 Sora 的 schema-driven value model 时,用 sora-protobuf

CI runtime matrix 会生成此表中每个支持组合,并对轻量可检查的语言做语法检查。