Skip to content
Takatoshi Kondo edited this page Jun 15, 2017 · 36 revisions

Welcome to the msgpack-c wiki!



msgpack-c 2.1.3 has been released! See Warnings on gcc-7 is solved (on 2.1.2, some warnings are remained on sevral environment. ) Added C++17 support.


msgpack-c 2.1.2 has been released! See Warnings on gcc-7 is solved. And other fixes.


msgpack-c 2.1.1 has been released! See unpacker's memory management bug has been fixed. See #561, #562.


msgpack-c 2.1.0 has been released! See You can use MSGPACK_NVP, and iterator based parse/unpack function (experimental).


msgpack-c 2.0.0 has been released! See


msgpack-c 1.4.2 has been released! See


msgpack-c API reference is published (not complete)


msgpack-c 1.4.1 has been released! See


msgpack-c 1.4.0 has been released! See

The C++ version of libraries, e.g.) libmsgpack.a and on linux, are no longer generated. The C++ parts of msgpack-c is a header only library since 1.0.0. So there is no reason to generate and link them. They are used to provided the same contents as the C version of libraries, e.g.) libmsgpackc.a and on linux. If you use the C version of msgpack-c, link the C version of libraries NOT removed C++ version.


msgpack-c 1.3.0 has been released! See

The license of msgpack-c is changed to oost Software License, Version 1.0. See #377.


Wandbox started supporting msgpack-c in C++. Wandbox is one of online compilers. You can test msgpack-c quickly with it. See


msgpack-c 1.2.0 has been released!


C++11 features are supported on MSVC2015 by default. When you define MSGPACK_USE_CPP03, msgpack-c works as C++03 mode. non default constructible class support does NOT work on MSVC2015 due to lack of Expression SFINAE support. See


msgpack is referred to as "msgpack: has very minimal forwards/backwards compatibility support when used with the typed C++ interface. Also lacks VS2010 support." in FlatBuffers Benchmarks page:

I don't understand what does "very minimal forwards/backwards compatibility support when used with the typed C++ interface" mean. I believe that they should clarify their point. msgpack-c provides a flexible adaptation mechanism. See

Also "lacks VS2010 support." is not true. msgpack-c supports VS2010. To check VS2010 support, I downloaded Visual C++ 2010 Express. Then ran cmake as follows:

I got an error. It was fatal error LNK1123. However, it has been reported as And solution is I appried SP1, then problem has been solved. It could happen to any programs.

By the way, if you want to use the C++ part of msgpack-c, you don't need to run cmake. All you need to do is add "msgpack-c/include" to your include path. See


msgpack-c version 1.0.x introduces API versioning mechanism. It requires that users need to include msgpack-c header files in correct order. For example,

#include <msgpack_fwd.hpp>

// Write non-intrusive operator<< and >> overload declaration here.

#include <msgpack.hpp>

// Write other user codes here.

However, it is very difficult to maintain. msgpack-c version 1.1.x removed this header files inclusion rule. I strongly recomend to use msgpack-c version 1.1.x.

Migration 1.0.x -> 1.1.x

All you need to do is:

Migration from 0.5.x -> 1.1.x

Major change: RAW family on 0.5.x can contain any binary data in the old spec. One user uses it to contain strings, another user uses it to contain binary data. In the 1.x spec, BIN family can contain any binary data. STR family can contain utf8 strings. You can choose appropriate one for your purpose.

This is new spec and this is old spec

More information in these links:

Discussion about this upgrade


You can’t perform that action at this time.