DependencyThe following library is optional:LibDebugLogger (Allows debugging, version 2.5.1 or later)DescriptionPlease note that this is a beta release. Its good enough for testing or early development. However in case of severe issues, breaking changes are still possible.This library allows to encode arbitrary, deep tables (as long as there are no circular references) to optimize saving large amounts of addon data. It encodes everything to a shallow table of long strings, which reduces UI load times and LUA memory consumption (until the data gets decoded again).APINote: array indicates an integer indexed lua table that can be iterated by ipairsEncodeFunction to encode data.encodedStrings = LibDataEncode.Encode(data, localDict, globalDict)data (string, number or table): Data to be encoded.localDict (true or array of string and/or number): Dictionary of recurring entries.If true, a dictionary will be created by scanning the data and creating entries for repeatedly occuring (>= 3) strings or numbers. The local dictionary will be included in the encoded strings.globalDict (array of string and/or number): A global dictionary that is provided by your addon. The global dictionary is not included in the encoded strings. Due to this, its entries have to stay the same, to allow decoding at a later time. However, the number of items present in the global dictionary is stored, so additional entries can be added over time without affecting the decoding. return encodedStrings (array of string): Encoded data.DecodeFunction to decode data.data, dict = LibDataEncode.Decode(encodedData, globalDict)encodedData (array of string): Encoded data, previously encoded with LibDataEncode.Encode.globalDict (array of string and/or number): The global dictionary used during encoding (see above). return data (string, number or table): The original data.return dict (array of string): Dictionary containing the combined (global and local) dictionary.MakeDictionaryThis function scans the provided data and creates a dictionary of recurring items.dictionary = LibDataEncode.MakeDictionary(data, globalDictionary)data (string, number or table): Data to be encoded.globalDict (array of string and/or number): A global dictionary that is provided by your addon (see above). return dictionary (array of string and/or number): Dictionary of recurring entries.PerformTestFunction to test encoding of data.testresult = LibDataEncode.PerformTest(testname, data, localDict, globalDict)testname (array of string): Encoded data, previously encoded with LibDataEncode.Encode.data, localDict, globalDict: see abovereturn testresult (table): Contains result, encoded and decoded data. Meant to be inspected with Zgoo or Torchbug. If the decoded data is identical to data, testresult.result will be trueGithub repository: https://github.com/Solinur/LibDataEncodeSolinur (EU)