mdata

v0.2.0

Mdata is a textual key value file format.

Lines are separated by LF ("\n") characters.

Each line may contain a record.

The first "=" character separates the key from the value i.e. keys cannot contain "=" characters, values can.

Whitespace is SPACE (" ") and TAB ("\t").

Keys and values are trimmed of leading and trailing whitespace.

Records with empty keys are ignored i.e. can be used as comments.

Records without a "=" characters have an empty value. These records may be used as tags.

Duplicate keys may trigger undefined behavior.

examples

= mdata is a format for keys and values

key = value

= mdata can be formatted prettily

book
	author = Joseph Heller
	 title = Catch-22

= The combination of tags (key only records)
= and ordinary records
= allow for a very nice manual editing experience 
= and just make sense for metadata.

cool = 	
	   
= comments are a nice implication of the format ignoring empty keys
	= comments can be indented, since keys are trimmed

= empty lines are also an implication

Above Mdata is equivalent to the following JSON:

{
	"key":    "value",
	"book":   "",
	"author": "Joseph Heller",
	"title":  "Catch-22",
	"cool":   ""
}

thew

Best practises, habits, conventions.

impl

A rudimentary Go implementation can be found at https://gitlab.com/datasha.re/mdata.