Skip to content
/ inison Public

INISON -- Simple readable configuration and serialization format.

License

Notifications You must be signed in to change notification settings

INISON/inison

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

INISON

JSON is too bureaucratic and restricted, YAML is too freeform and complex -- INISON is just right!

Flexible enough and simple enough.

Brings new life to old good INI files.

INISON is just JSON except:

  • allowing bare identifiers as object keys {a:1,true:2,321:3} (all keys regarded as strings)
  • conventional unix style comments: {a:1} # my "A"
  • allowing trailing commas [1,2,] or no commas at all [1 2 3]
  • additional quote to disable escaping (')
  • python like triple quoting (""" and ''') to enable multiline strings (''' does not parse escapes)
  • tagged values: Point@{x:12,y:321.3}
  • typed values: {b:DATE(2015-01-01),c:PCRE(/^x[0-9]/i)}
  • no NULL and NAN (use types instead, {a:1,b:NaN(),c:3,d:NULL()})
  • toplevel INI like syntax for objects, so {a:1,b:{c:2,d:3}} may be written as a=1 [b] c=2 d=3 which greatly improves readability and reduces {{}} clutter

File extension is *.ison

Side notes

Capitalized tags are type constructors, noncapitalized are converters or checkers.

Grammar

<<insert rendered railroad diagram picture here like at json.org>>

About

INISON -- Simple readable configuration and serialization format.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published