技术 · SDK

协议定义库

GProtocol 用五种语言维护同一份协议定义:动作常量、报文结构、错误 key 与版本号。Go 是主源,其余语言与之逐项对齐。

语言包名内容状态
Gogather-gprotocol/go常量、报文结构、版本判断与签名原文拼接等辅助函数节点在用
Dartgather_protocol常量与类型,带 JSON 序列化App 在用
Javatop.gather.protocol常量与类型仅定义
JavaScript@gather-network/gather-protocol常量、类型与报文工厂函数仅定义
Pythongather_protocol动作与常量,由 Go 版本自动生成仅定义

怎么保证五种语言一致

  • 提交前自动比对各语言的动作清单、路由类型标注与版本号。
  • Python 绑定由脚本从 Go 生成,并校验生成结果没有被手改。
  • 加密相关的格式(信箱、群组、文件凭据、备份、节点目录)有共享的测试向量,Go、Dart、Python 三端逐字节比对。

参考实现

信箱、群组、文件凭据与备份四部分的加密格式另有 Python 参考实现,用来生成和校验测试向量。各语言的协议库本身不包含加密、网络或客户端实现。

面向开发者开放

协议定义库和第三方开发文档目前尚未公开发布。开放计划确定后,我们会在这里公布获取方式与文档。