# MsgPack

This directory contains an seL4 build system wrapper to build msgpack-c, a library for dealing with
MessagePack data. You can read more about MessagePack at:

  * http://msgpack.org/

## Directory Contents

  * CMakeLists.txt — seL4 build system configuration
  * msgpack-c — the unaltered msgpack-c 1.4.1 release

## Legal

It is intentional that none of the files in this directory contain the usual NICTA or Data 61
license headers. The msgpack-c sources are covered by their own license and we do not claim any
copyright over the minimal build system fragments accompanying it.
