LibDataPacker (0.0.1)

Change Log:
——————–
0.0.1
– Initial

Description:
——————–
Simple library to pack/compress data. Suitable for
– sharing data via text (custom links, export/import, etc.)
– saved variables

Currently used in my addon ImpressiveStats (managed to decrease size of saved variables 10 times).

Example 1: share full build data (as SuperStar does)

– Create data schema

local IGNORE_NAMES = true

local item = Field.Table(‘item’, {
Field.Number(‘id’, 20),
Field.Number(‘quality’, 3),
Field.Number(‘trait’, 6),
Field.Number(‘ench. id’, 20),
}, IGNORE_NAMES)

local superStarDataSchema = Field.Table(nil, {
Field.Number(‘alliance’, 2),
Field.Number(‘race’, 3),
Field.Number(‘class’, 3),
Field.Number(‘ava rank’, 6),
Field.Number(‘skill points’, 10),
Field.Number(‘level, cp’, 12),

Field.Array(‘skills’, 12, Field.Number(nil, 20)),
Field.Array(‘boons’, 2, Field.Number(nil, 4)),

Field.Number(‘vampire/ww’, 3),

Field.Array(‘attributes’, 3, Field.Number(nil, 7)),
Field.Array(‘resources’, 3, Field.Number(nil, 16)),
Field.Array(‘regens’, 3, Field.Number(nil, 14)),
Field.Array(‘wpd/spd’, 2, Field.Number(nil, 14)),
Field.Array(‘critrate’, 2, Field.Number(nil, 15)),
Field.Array(‘penetration’, 2, Field.Number(nil, 16)),
Field.Array(‘resistance’, 2, Field.Number(nil, 17)),
Field.Array(‘gear’, 14, item),
Field.Array(‘CP stars’, 12, Field.Number(nil, 14)),
}, IGNORE_NAMES)

– This schema can be used to pack data like this:

local data =
local base = LibDataPacker.Base.Base64LinkSafe

local packedData = LibDataPacker.Pack(data, superStarDataSchema, base)

– Packed data is a simple string you can send, copy, save to saved…

Leave a Reply

Your email address will not be published. Required fields are marked *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.