mcpField
S
spacetimedb-serialization

spacetimedb-serialization

github.com/danmossa开发2161 次安装19 周前更新
代码仓库

关于 spacetimedb-serialization

spacetimedb-serialization 是面向低层编码、线格式和模块 ABI 工作的技术 Skill,供处理自定义工具、协议检查或序列化调试的开发者使用。它汇总 BSATN、SATS JSON 与 WebAssembly ABI 的编码规则和注意事项。

主要功能

  1. 01说明 BSATN 字段顺序与基本类型编码
  2. 02介绍 SATS JSON 产品值格式
  3. 03说明整数与浮点数的编码细节
  4. 04概述 WebAssembly 模块 ABI
  5. 05提示缓冲区所有权与 UTF-8 风险

适用场景

  1. 01调试 BSATN 序列化数据
  2. 02检查 SATS JSON 表示与精度风险
  3. 03处理 WebAssembly 模块 ABI
  4. 04为自定义工具分析线格式

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/danmossa/spacetimedb-skills --skill spacetimedb-serialization

安装后在 Claude Code 中输入/spacetimedb-serialization确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bsatn.md
sats-json.md
webassembly-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 处理具有有损性;无效字节可能会被替换。
  • 缓冲区函数具有明确的所有权规则。请勿重复使用已被消耗的主机缓冲区。

参考索引

需求打开
BSATNreferences/bsatn.md
SATS JSONreferences/sats-json.md
WebAssembly 模块 ABIreferences/webassembly-abi.md

指南

  • 除非用户的任务明确涉及序列化、ABI 或自定义工具,否则优先使用高级 SDK 和模块 API。
  • 字节级示例应遵循参考文档中的表示法。
  • 将常规客户端/服务端代码引导至相关的 SDK、reducer、表或过程技能。

评论

支持 Markdown