Skip to content
Takatoshi Kondo edited this page Sep 4, 2015 · 38 revisions

Welcome to the msgpack-c wiki!

News

09/04/2015

msgpack-c 1.2.0 has been released! https://github.com/msgpack/msgpack-c/releases/tag/cpp-1.2.0

08/17/2015

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 https://github.com/msgpack/msgpack-c/issues/343#issuecomment-131654386

06/30/2015

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:

https://google.github.io/flatbuffers/md__benchmarks.html

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 https://github.com/msgpack/msgpack-c/wiki/v1_1_cpp_adaptor

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:

https://github.com/msgpack/msgpack-c#gui-on-windows

I got an error. It was fatal error LNK1123. However, it has been reported as https://support.microsoft.com/en-us/kb/2757355. And solution is http://stackoverflow.com/questions/10888391/error-link-fatal-error-lnk1123-failure-during-conversion-to-coff-file-inval. 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 https://github.com/msgpack/msgpack-c#c-header-only-library

Important

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 https://github.com/msgpack/msgpack/blob/master/spec.md and this is old spec https://github.com/msgpack/msgpack/blob/master/spec-old.md

More information in these links:

Discussion about this upgrade

See: https://github.com/msgpack/msgpack-c/issues/249