怎么保证五种语言一致
- 提交前自动比对各语言的动作清单、路由类型标注与版本号。
- Python 绑定由脚本从 Go 生成,并校验生成结果没有被手改。
- 加密相关的格式(信箱、群组、文件凭据、备份、节点目录)有共享的测试向量,Go、Dart、Python 三端逐字节比对。
GProtocol 用五种语言维护同一份协议定义:动作常量、报文结构、错误 key 与版本号。Go 是主源,其余语言与之逐项对齐。
| 语言 | 包名 | 内容 | 状态 |
|---|---|---|---|
| Go | gather-gprotocol/go | 常量、报文结构、版本判断与签名原文拼接等辅助函数 | 节点在用 |
| Dart | gather_protocol | 常量与类型,带 JSON 序列化 | App 在用 |
| Java | top.gather.protocol | 常量与类型 | 仅定义 |
| JavaScript | @gather-network/gather-protocol | 常量、类型与报文工厂函数 | 仅定义 |
| Python | gather_protocol | 动作与常量,由 Go 版本自动生成 | 仅定义 |
信箱、群组、文件凭据与备份四部分的加密格式另有 Python 参考实现,用来生成和校验测试向量。各语言的协议库本身不包含加密、网络或客户端实现。
协议定义库和第三方开发文档目前尚未公开发布。开放计划确定后,我们会在这里公布获取方式与文档。