All Projects → ar90n → Msgpack11

ar90n / Msgpack11

Licence: mit
A tiny MessagePack library for C++11 (msgpack.org[C++11])

Projects that are alternatives of or similar to Msgpack11

msgpack-perl
MessagePack serializer implementation for Perl / msgpack.org[Perl]
Stars: ✭ 48 (-38.46%)
Mutual labels:  serialization, msgpack, messagepack
Messagepack Csharp
Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]
Stars: ✭ 3,668 (+4602.56%)
Mutual labels:  msgpack, messagepack, serialization
sbp
Structured Bindings Pack - serialize C++ structs into MessagePack binary form
Stars: ✭ 16 (-79.49%)
Mutual labels:  serialization, msgpack, messagepack
Msgpack Cli
MessagePack implementation for Common Language Infrastructure / msgpack.org[C#]
Stars: ✭ 761 (+875.64%)
Mutual labels:  msgpack, messagepack, serialization
Msgpack Rust
MessagePack implementation for Rust / msgpack.org[Rust]
Stars: ✭ 561 (+619.23%)
Mutual labels:  msgpack, messagepack, serialization
Msgpack.php
A pure PHP implementation of the MessagePack serialization format / msgpack.org[PHP]
Stars: ✭ 327 (+319.23%)
Mutual labels:  msgpack, messagepack, serialization
msgpack-asgi
Drop-in MessagePack support for ASGI applications and frameworks
Stars: ✭ 100 (+28.21%)
Mutual labels:  msgpack, messagepack
kotlinx-serialization-msgpack
MsgPack support for kotlinx.serialization -- msgpack.org[kotlinx.serialization]
Stars: ✭ 17 (-78.21%)
Mutual labels:  msgpack, messagepack
Mpack
MPack - A C encoder/decoder for the MessagePack serialization format / msgpack.org[C]
Stars: ✭ 282 (+261.54%)
Mutual labels:  msgpack, messagepack
msgpack-smalltalk
MessagePack serialization library for various Smalltalk dialects / msgpack.org[Smalltalk]
Stars: ✭ 22 (-71.79%)
Mutual labels:  serialization, msgpack
Ceras
Universal binary serializer for a wide variety of scenarios https://discord.gg/FGaCX4c
Stars: ✭ 374 (+379.49%)
Mutual labels:  msgpack, serialization
Remarshal
Convert between CBOR, JSON, MessagePack, TOML, and YAML
Stars: ✭ 421 (+439.74%)
Mutual labels:  msgpack, messagepack
what-the-pack
Ultra-fast MessagePack for NodeJS & Browsers | msgpack.org[Javascript/NodeJS]
Stars: ✭ 36 (-53.85%)
Mutual labels:  msgpack, messagepack
HashStablePack
Serialization code generator for QUICK struct content comparison
Stars: ✭ 94 (+20.51%)
Mutual labels:  serialization, messagepack
rcppmsgpack
MsgPack Headers for R / msgpack.org[R]
Stars: ✭ 17 (-78.21%)
Mutual labels:  msgpack, messagepack
Cpp Serializers
Benchmark comparing various data serialization libraries (thrift, protobuf etc.) for C++
Stars: ✭ 533 (+583.33%)
Mutual labels:  msgpack, serialization
Json
JSON for Modern C++
Stars: ✭ 27,824 (+35571.79%)
Mutual labels:  msgpack, messagepack
urlpack
Pure JavaScript toolkit for data URLs (MessagePack, Base58 and Base62)
Stars: ✭ 51 (-34.62%)
Mutual labels:  serialization, messagepack
Airframe
Essential Building Blocks for Scala
Stars: ✭ 442 (+466.67%)
Mutual labels:  msgpack, serialization
Msgpack Javascript
MessagePack for JavaScript/TypeScript/ECMA-262 / msgpack.org[JavaScript]
Stars: ✭ 742 (+851.28%)
Mutual labels:  msgpack, messagepack

Build Status

What is msgpack11 ?

msgpack11 is a tiny MsgPack library for C++11, providing MsgPack parsing and serialization.
This library is inspired by json11.
The API of msgpack11 is designed to be similar with json11.

Installation

  • Using CMake

      git clone [email protected]:ar90n/msgpack11.git
      mkdir build
      cd build
      cmake ../msgpack11
      make && make install
    
  • Using Buck

      git clone [email protected]:ar90n/msgpack11.git
      cd msgpack11
      buck build :msgpack11
    

Example

MsgPack my_msgpack = MsgPack::object {
    { "key1", "value1" },
    { "key2", false },
    { "key3", MsgPack::array { 1, 2, 3 } },
};

//access to elements
std::cout << my_msgpack["key1"].string_value();

//serialize
std::string msgpack_bytes = my_msgpack.dump();

//deserialize
std::string err;
MsgPack des_msgpack = MsgPack::parse(msgpack_bytes, err);

There are more specific examples in example.cpp. Please see it.

Benchmark

Derived from schemaless-benchmarks

Library Binary size time[ms] @ Smallest time[ms] @ Small time[ms] @ Medium time[ms] @ Large time[ms] @ Largest
msgpack-c-pack(v2.1.4) 6649 0.55 2.38 43.22 711.75 8748.20
msgpack-c-unpack(v2.1.4) 21804 1.34 6.00 83.09 714.64 11192.32
msgpack11-pack(v0.0.9) 99844 20.80 130.04 1063.24 10466.65 136640.99
msgpack11-unpack(v0.0.9) 99460 13.31 92.54 786.73 7345.43 99119.56

CPU : 2.6 GHz Intel Core i7
Memory : 16 GB 2133 MHz LPDDR3
Git revision : 6f6b4302b68b3c88312eb24367418b7fce81298c

Feature

  • Support serialization and deserialization.

Acknowledgement

License

This software is released under the MIT License, see LICENSE.txt.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].