关于 spacetimedb-serialization
spacetimedb-serialization 是面向低层编码、线格式和模块 ABI 工作的技术 Skill,供处理自定义工具、协议检查或序列化调试的开发者使用。它汇总 BSATN、SATS JSON 与 WebAssembly ABI 的编码规则和注意事项。
主要功能
- 01说明 BSATN 字段顺序与基本类型编码
- 02介绍 SATS JSON 产品值格式
- 03说明整数与浮点数的编码细节
- 04概述 WebAssembly 模块 ABI
- 05提示缓冲区所有权与 UTF-8 风险
适用场景
- 01调试 BSATN 序列化数据
- 02检查 SATS JSON 表示与精度风险
- 03处理 WebAssembly 模块 ABI
- 04为自定义工具分析线格式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-serialization安装后在 Claude Code 中输入/spacetimedb-serialization确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bsatn.mdsats-json.mdwebassembly-abi.md详细介绍
将此技能用于底层编码、线缆格式和模块 ABI 工作。
核心编码事实
- 除非任务明确涉及自定义工具、协议检查、ABI 工作或序列化调试,否则优先使用生成的 SDK 和模块 API。
- BSATN 按顺序将产品值编码为字段值;不会编码字段名称。
- BSATN 将字符串编码为
u32字节长度,后接 UTF-8 字节。 - BSATN 以小端形式编码整数和浮点原始类型的负载;浮点数使用其原始 IEEE 位表示。
- SATS JSON 产品值可以按字段顺序表示为数组,也可以按字段名称表示为对象。
- SATS JSON 将整数类型编码为 JSON 数字,因此在常规 JavaScript 数字处理中,大型 64 位、128 位和 256 位值可能会失去精度。
- Sum 值是带标签的联合体;标签取决于格式,可以是变体索引或名称。
ABI 注意事项
- WebAssembly ABI 函数在
wasm32上使用 C ABI,并且通常通过指针/长度对进行通信。 - 大多数主机函数返回
u16,其中0表示成功;输出通过输出指针写入。 - 某些 UTF-8 处理具有有损性;无效字节可能会被替换。
- 缓冲区函数具有明确的所有权规则。请勿重复使用已被消耗的主机缓冲区。
参考索引
| 需求 | 打开 |
|---|---|
| BSATN | references/bsatn.md |
| SATS JSON | references/sats-json.md |
| WebAssembly 模块 ABI | references/webassembly-abi.md |
指南
- 除非用户的任务明确涉及序列化、ABI 或自定义工具,否则优先使用高级 SDK 和模块 API。
- 字节级示例应遵循参考文档中的表示法。
- 将常规客户端/服务端代码引导至相关的 SDK、reducer、表或过程技能。
评论
支持 Markdown