对象序列化类库,MessagePack 的 C 实现发布 1.0.0 版本

jopen 10年前

MessagePack 的 C 实现发布 1.0.0 版本,下载地址:https://github.com/msgpack/msgpack-c
MessagePack是一个基于二进制高效的对象序列化类库,可用于跨语言通信。它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。支持Python、Ruby、Java、C/C++等众多语言。比Google Protocol Buffers还要快4倍。

示例代码:

#include <msgpack.h>  #include <stdio.h>     int main(void)  {      /* msgpack::sbuffer is a simple buffer implementation. */      msgpack_sbuffer sbuf;      msgpack_sbuffer_init(&sbuf);         /* serialize values into the buffer using msgpack_sbuffer_write callback function. */      msgpack_packer pk;      msgpack_packer_init(&pk, &sbuf, msgpack_sbuffer_write);         msgpack_pack_array(&pk, 3);      msgpack_pack_int(&pk, 1);      msgpack_pack_true(&pk);      msgpack_pack_str(&pk, 7);      msgpack_pack_str_body(&pk, "example", 7);         /* deserialize the buffer into msgpack_object instance. */      /* deserialized object is valid during the msgpack_zone instance alive. */      msgpack_zone mempool;      msgpack_zone_init(&mempool, 2048);         msgpack_object deserialized;      msgpack_unpack(sbuf.data, sbuf.size, NULL, &mempool, &deserialized);         /* print the deserialized object. */      msgpack_object_print(stdout, deserialized);      puts("");         msgpack_zone_destroy(&mempool);      msgpack_sbuffer_destroy(&sbuf);         return 0;  }
来自:http://www.oschina.net/news/60413/msgpack-c-1-0