TDAT
The Tabular Data (TDAT) Data Interchange Format

When data has to be stored and exchanged between computer programs, one has to make a decision about the format of the data. There are binary exchange formats as well as text-based formats. Binary formats are often better suited for machines, but human readability suffers. Therefore, JSON and XML are nowadays the defacto standard for data interchange between computer programs. Both JSON and XML can be created, manipulated and read by humans. Both JSON and XML are well suited for structured data. For tabular data, CSV might be often better suited, as its representation resembles a tabular structure. The drawback of CSV however is that it's poorly specified and documented.

TDAT aims to be a better JSON/XML/CSV for tabular data. It's minimal, well specified, type-safe and can be read and written by humans as well as machines. TDAT is a data interchange format for tabular data. It is derived from CSV (Comma Separated Values). Its main characteristics are:

A sample looks like this:

    persons
    |id:i   |name:s      |male:b     |birth:t
    |1      |"John Doe"  |true       |1972-05-03T10:11:12.193
    |2      |"Jane Doe"  |false      |1973-04-21T04:12:54.677
    |3      |"Paul Doe"  |true       |2004-01-02T08:04:12.677
    |4      |"Baby Doe"  |           |

TDAT is currently three things:

The TDAT reference implementation is written in Go, so it will run an any system supported by Go. Other languages are not supported (as far as I know), but that might change in the future.

Check it out on github:
https://github.com/cvilsmeier/tdat.

2018-01-01