MessagePack for Qt
Complete documentation is available here: qmsgpack.readthedocs.io
git clone https://github.com/romixlab/qmsgpack.git
cd qmsgpack mkdir build cd build cmake ..
Run tests and install
make tests install
QVariantList list; list << 1 << 2 << 3; QByteArray array = MsgPack::pack(list);
QVariantList unpacked = MsgPack::unpack(array).toList();
By default these Qt types are supported:
Int, UInt, LongLong, ULongLong, Double, QByteArray, Bool, QString, QStringList, QVariantList, QVariantMap.
Also you can provide packer and unpacker functions for any other type (even for user type defined via
Q_DECLARE_METATYPE) or MsgPack type.
Qt types and User types
There is packers and unpackers for QColor, QTime, QDate, QDateTime, QPoint, QSize, QRect. Also you can create your own packer/unpacker methods for Qt or your own types. See docs for details.
At this time it is not safe to call
MsgPack::setCompatibilityModeEnabled from different threads.
pack and unpack methods do not use any global data, so should be safe to use from multiple threads.