C/C++ Client 到Go Server 结构体序列化/反序列化方案
大多数方式都是protobuf
但是还要编写.proto文件就比较繁琐了.
最近找到了 cstruct-go 开源库
得益于golang 强大的运行时库 可以在运行时判断结构体中各项的类型
该库可以在c struct 结构体 对齐方式为1时 提供 序列化/反序列化的能力
以下复制于项目的readme
字节序
小端字节序。
基本类型
go类型 内存说明
bool 1 byte
int8 1 byte
uint8 1 byte
int16 2 byte
uint16 2 byte
int32 4 byte
uint32 4 byte
int64 8 byte
uint64 8 byte
float32 4 byte
float64 8 byte
string [2 byte] + [len(字符串) byte]
[]byte [2 byte] + [len(2进制数据) byte]
数组类型
Ps:有一说一真滴好用.