jubako 0.4.0

The reference implementation of the Jubako container format
Documentation
==============
Container pack
==============

The container pack is a light weigh pack containing other pack.
It is a simple structure to locate other pack in it.

Jubako containerHeader
=====================

Contrairy to other packs, container pack doesn't start with a pack header.
The full header is:

============= ======== ====== ===========
Field Name    Type     Offset Description
============= ======== ====== ===========
packsPos      Offset   0      A offset to a array of PackLocator
packCount     u16      8      The number of pack contained in the container.
_reserved     [u8;26]  10     MUST be 0.
freeData      [u8;24]  36
============= ======== ====== ===========

The size of of this header, is 60 bytes.
ContainerHeader is a 60 bytes block.

This mainly reuse the same structure than Pack header.
Readers may want to always parse the first 64 bytes of a pack as a PackHeader to gather basic
information on it (as knowing its kind and size).

PackLocator
===========

At the end of the container pack (just before the tail), there is a array of packLocator.
There is ``packCount`` packLocator.

It describe the pack parts of a Jubako container and where to find them.


================ ========= ====== ===========
Field Name       Type      Offset Description
================ ========= ====== ===========
id               [u8,16]   0      The id of the pack
                                  Must be equal to the id in the packheader of the pointed pack
packSize         Size      16     The size of the pack.
                                  Must be equal to the packSize in the packheader of the pointed pack
packOffset       Offset    24     | The offset (starting from the beginning of
                                    the container file) where to find the pack.
_reserved        [u8,4]    32     MUST be 0.
================ ========= ====== ===========

Full Size : 36 bytes.
Each PackLocator is a 36 bytes block.