Skip to content
/ pkmsg Public

c 结构体序列化,目前仅支持 msgpack

License

Notifications You must be signed in to change notification settings

haoyu234/pkmsg

Repository files navigation

pkmsg

  1. 无内存申请
  2. 简单轻量, 只有 2 个接口
  3. 支持变长数组

example

int main() {
  uint8_t serialized_buf[40960];
  struct stUseItemReq use_item_req = {.itemID = 1001};

  // 编码
  const size_t wpos =
      pk_encode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, sizeof(serialized_buf));

  // 写入到文件或者网络
  write(socket, serialized_buf, wpos);

  // 解码
  const size_t rpos =
      pk_decode(stUseItemReqObject, &use_item_req, sizeof(use_item_req), serialized_buf, wpos);

  ...
}

api

// 编码
size_t pk_encode(const struct clColumn *column, const void *addr, size_t size,
              uint8_t *buf, size_t len);

// 解码
size_t pk_decode(const struct clColumn *column, void *addr, size_t size,
                const uint8_t *buf, size_t len);

About

c 结构体序列化,目前仅支持 msgpack

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages