The Gekko databanks come in three variants, listed chronologically:
- 1.0. (July 2011). The file extension is .tsdx. Inside this zip-file there is a .tsd file, and a xml file with meta-information (does not state the databank format number, which is implicitly “1.0”). Only supports timeseries. Can be read by Gekko 1.3.1 and later.
- 1.1. (November 2012). The file extension is .tsdx or .gbk. Inside there is a binary protobuffer file (either with extension .bin (older) or .data (newer)), and a xml file with meta-information, where databankVersion = “1.1”. Only supports timeseries. Can be read by Gekko 1.5.8 and later.
- 1.2. (November 2018). The file extension is .gbk. Inside there is a binary protobuffer file (databank.data) and a xml file with meta-information (DatabankInfo.xml), where databankVersion = “1.2”. It supports seven variable types: timeseries (including array-series), val, date, string, list, map, matrix. It can be read by Gekko 3.0 and later (but also partially by the older Gekko 2.3.13, Gekko 2.4, and Gekko 2.5.x). Future variable types or new timeseries frequencies implemented in the Gekko 3.1.x series should not crash the reading capabilities of Gekko 2.3.13, 2.4, 2.5.x or 3.0. In Gekko 2.4 or 2.5.x, such unknown variables are simply skipped while reading, whereas Gekko 3.0 will read them, but treat them as null values.
The protobuf format used by databank versions 1.1 and 1.2 is an open and free dataformat, originally developed by Google. Citation: “A language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler.”. Protobuffer files can be read/written by many computer languages. Gekko uses protobuf-net internally for the C# language. All in all, don’t be scared of storing data in protobuffer files, they will always be readable!