Skip to content
Takatoshi Kondo edited this page Feb 4, 2017 · 38 revisions

Welcome to the msgpack-c wiki!

News

02/04/2017

msgpack-c 2.1.1 has been released! See https://github.com/msgpack/msgpack-c/releases/tag/cpp-2.1.1 unpacker's memory management bug has been fixed. See #561, #562.

01/10/2017

msgpack-c 2.1.0 has been released! See https://github.com/msgpack/msgpack-c/releases/tag/cpp-2.1.0 You can use MSGPACK_NVP, and iterator based parse/unpack function (experimental).

06/25/2016

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

05/26/2016

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

04/05/2016

msgpack-c API reference is published (not complete) http://c.msgpack.org/

03/06/2016

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

01/22/2016

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

The C++ version of libraries, e.g.) libmsgpack.a and libmsgpack.so 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 libmsgpackc.so on linux. If you use the C version of msgpack-c, link the C version of libraries NOT removed C++ version.

11/22/2015

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

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

09/25/2015

Wandbox started supporting msgpack-c in C++. Wandbox is one of online compilers. You can test msgpack-c quickly with it. See http://melpon.org/wandbox/permlink/PFxMVm4fktSgrurg

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