GML | 1969 | Markup Language. |
Charles Goldfarb, Edward Mosher and Raymond Lorie | ||
:h1 id='intr'.My Todo List
:p.Time for celebration!
:ol.
:li.Clean house.
:li.Order food.
:li.Have party.
:eol.
Have a great time. |
||
Scribe | 1979 | Markup Language. |
Brian Reid | ||
@MakeSection(tag=first title="My First Section")
@Heading(The Beginning)
An introduction with text. Followed by a quotation:
@Begin(Quotation)
Let's start at the very beginning, a very good place to start
@End(Quotation) |
||
SGML | 1986 | Standard Generalized Markup Language. |
ISO | ||
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article>
<sect1 id="introduction"><title>Hello world introduction</title>
<para>
Hello world!
</para>
</sect1>
</article> |
||
Property Lists | 1989 | The NEXTSTEP data serialization format. |
{
user = wshakesp;
birth = 1564;
death = 1616;
Play = {
title = Hamlet;
arrayofantagonists = ( "Claudius", "Polonius" );
};
binarydata = <0fbd777 1c2735ae>
} |
||
HTML | 1993 | Hypertext Markup Language. |
Tim Berners-Lee | ||
<HEADER>
<TITLE>The World Wide Web project</TITLE>
<NEXTID N="55">
</HEADER>
<BODY>
<H1>World Wide Web</H1>The WorldWideWeb (W3) is a wide-area<A NAME=0 HREF="WhatIs.html"> hypermedia</A>
information retrieval initiative aiming to give universal access to a large universe of documents.<P>
</BODY> |
||
LUA | 1993 | is a lightweight, high-level, multi-paradigm programming language. |
Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes | ||
-- Configure your settings here...
settings = {
lol = {
runtime = {
version = "Lua 5.1",
enable = false
}
paths = {
'/alfa/beta',
'/gamma'
}
}
} |
||
XML | 1998 | Extensible Markup Language a subset of SGML. |
World Wide Web Consortium | ||
<car>
<model>Satsuma</model>
<year>1974</year>
<speed>80 km/h</speed>
<color>yellow/rust</color>
</car> |
||
JSON | 2000 | JavaScript Object Notation is a lightweight data-interchange format. |
Douglas Crockford | ||
{
"color": "red",
"speed": 123,
"working": true,
"null": null,
"tires" : [ 1, "2", null, "null", true, "true", "round", {}, [] ]
} |
||
YAML | 2001 | Human-friendly data serialization language. |
Oren Ben-Kiki, Clark Evans, Brian Ingerson | ||
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00 |
||
OGDL | 2002 | The Ordered Graph Data Language is a structured textual format that represents information in the form of graphs, where the nodes are strings and the arcs or edges are spaces or indentation. |
Rolf Veen | ||
network
eth0
ip 192.168.0.10
mask 255.255.255.0
gw 192.168.0.1
hostname crispin |
||
DL | 2002 | A Streaming Data Language. |
Tom Bradford | ||
UserInfo {
name "Tom"
age 29
happy true
password "something"
favColor {
red 255
green 0
blue 0
}
groups {
"admin"
"staff"
"wheel"
}
} |
||
LMNL | 2002 | A Layered Markup and Annotation Language with overlapping mark regions. |
Jeni Tennison, Wendell Piez | ||
[book [title [lang}en{lang]}Genesis{title]}
[chapter}
[section [title}The creation of the world.{title]}
[para}
[v}[s}[note}In the beginning of creation, when God made heaven and
earth,{note [alt}In the beginning God created heaven and
earth.{alt]]{v] [v}the earth was without form and void, with darkness
over the face of the abyss, [note}and a mighty wind that swept{note [alt}and
the spirit of God hovering{alt]] over the surface of the waters.{s]{v]
[v}[s}God said, [quote}[s}Let there be a light{s]{quote], and there
was light;{v] [v}and God saw that the light was good, and he separated
the light from darkness.{s]{v] [v}[s}He called the light day, and the
darkness night. So evening came, and morning came, the first
day.{s]{v]
{para]
...{chapter]...{section]...{book] |
||
BetterMarkup | 2002 | Better Markup format is an alternative syntax for XML. |
Bryan Livingston | ||
{*BM DefaultAttributeName=name}
{*xml version="1.0"}
<TEST-STYLE />
{* This is comment number 1.}
<staff>
<employee>
<employeeId>EMP0001~
<name>Margaret Martin~
<position>Accountant~
<salary>56,000~
<gender>Female~
<address domestic=Yes>1230 North Ave. Dallas, Texas 98551~
~
<employee>
<employeeId>EMP0002~
<name>Martha Raynolds{This is a CDATASection &ent2;}~
<position>Secretary~
<salary>35,000~
<gender>Female~
<address domestic=Yes street=Yes>& Dallas, & 98554~
~
~ |
||
SML | 2003 | Simplify XML and focus on user-friendly syntax: easier to read and write than XML. |
Don Park | ||
XML Version:
<circle x="1.0" y="1.0" r="0.5">
<fill color="#FF0000"/>
<text>Hello</text>
<text>World</text>
</circle>
SML Version:
circle x="1.0" y="1.0" r="0.5"
fill color="#FF0000"
text "Hello"
text "World"
SOSML Version:
# comments are '#' followed by a whitespace
circle x='1.0' y = '1.0' r='0.5'
fill color='#ff0000' # red
"some useless text as mixed content"
text "Hello"
text
a href='somewhere'
"text with a link a quote like this \" " |
||
SMEL | 2003 | Some Modest Extensible Language. It's inspired by XML, but intended to be more flexible, more compact, and more readable. |
Tommy Carlier | ||
table(id="data:Persons")
{
fields(pk=!nr) /* the primary key is nr (number*/")>
{
field(id=!nr type="number", unique="true");
field(id=!first_name type="text" maxlength=100);
field(id=!last_name type="text" maxlength=100);
field(id=!mail type="text" maxlength=200);
}
data
{
row {0, "Tommy", "Carlier", "tommy.carlier@pandora.be"}
row {1, "John", "Doe", "john@doe.com"}
row {2, "Bill", "Gates", "bill.gates@microsoft.com"}
}
} |
||
SDL | 2003 | Simple Data Language created for Apache HiveMind, has elements, attributes, and nesting present in XML, but is geared towards configuration. |
Dieter Bogdoll | ||
module(id = some.module
version = "1.0.0")
{
// A comment...
configuration(id = ControlPipeline)
{
description = << A long, multiline string
that may contain "quoted" sections. >>
schema {
element(name = processor)
{
attribute(name = alfa
required = true)
}
}
}
} |
||
ONX | 2003 | Alternativeto XML but designed to be data-oriented instead of document-oriented. |
Seairth Jacobs | ||
:onx{
:calendar{
:entry{
:date["2003" "1" "1"]
:type["event"]
:note["Happy New Year!"]
}
:entry{
:date["2003" "3" "8"]
:type["birthday"]
:note["Buy self a present..."]
}
}calendar
}onx
:onx{
:fields{
:field["ID" "integer"]
:field["city" "string"]
:field["state" "string"]
}
:data{
:record["1" "Norfolk" "VA"]
:record["2" "Salem" "MA"]
}
}onx
:onx{:request{:host["www.seairth.com"]:resource["/web/onx/onx.html"]}}onx |
||
ConciseXML | 2003 | Alternative xml for non-hierarchial data, program logic, document markup, and binary data. |
Christopher Fry | ||
ConciseXML: <textarea>hi</>
XML 1.0: <textarea>hi</textarea>
ConciseXML: <person "Mike" "Plusch"/>
XML 1.0: <person first="Mike" last="Plusch"/>
ConciseXML: "abe".<foo color="blue"/>.bar
XML 1.0: <execute_path>"abe"<foo color="blue"/>bar</execute_path>
ConciseXML: <list <item name="bread"/> <item name="milk"/> />
XML 1.0: <list><attributes><item name=”bread”/><item name=”milk”/></attributes></list>
|
||
Nginx | 2004 | Nginx configuration language. |
Igor Sysoev | ||
server {
listen 80;
server_name mywebsite.com;
location / {
root /var/www/mywebsite;
index index.html;
}
} |
||
Config | 2004 | A Python configuration file format. |
Vinay Sajip | ||
# A comment regarding this message.
messages:
[
{
stream : `sys.stderr`
message: Welcome
name: Harry
}
{
stream : `sys.stdout`
message: Welkom
name: 'Ruud Groot'
}
{
stream : $messages[0].stream
message : Bienvenue
name : Yves
}
] |
||
ConfigObj | 2004 | ConfigObj is a simple but powerful Python config file reader and writer: an ini file round tripper. |
Michael Foord, Nicola Larosa | ||
keyword1 = value1
'keyword 2' = 'value 2'
[ "section 1" ]
keyword 3 = value 3
'keyword 4' = value4, value 5, 'value 6'
[[ sub-section ]]
'keyword 6' = '''A multiline value,
that spans more than one line :-)
The line breaks are included in the value.'''
[[[ sub-sub-section ]]]
'keyword 7' = 'value 8' |
||
SSYN | 2004 | SSYN is intended to be a simpler alternative to data-centric XML and YAML. |
Jason Diamond | ||
purchase order: 1999-10-20
ship to:
name: Alice Smith
street: 123 Maple Street
city: Mill Valley
state: CA
zip: 90952
country: US
comment::
Hurry, my lawn is going wild!
items:
: 872-AA
product name: Lawnmower
quantity: 1
price: 148.95
comment::
Confirm this is electronic.
: 926-AA
product name: Baby Monitor
quantity: 1
price: 39.98
ship date: 1999-05-21 |
||
GroovyMarkup | 2004 | The native Groovy syntax used to represent XML/HTML. |
html(lang:'en') {
head {
meta('http-equiv':'"Content-Type" content="text/html; charset=utf-8"')
title('My page')
}
body {
p('This is an example of HTML contents')
}
} |
||
HAML | 2006 | Beautifully DRY, well-indented, clear markup: templating haiku. |
Hampton Catlin | ||
#content
.left.column
%h2 Welcome to our site!
%p= print_information
.right.column
= render :partial => "sidebar" |
||
JsonML | 2007 | The purpose of JsonML is to provide a compact format for transporting XML-based markup as JSON which allows it to be losslessly converted back to its original form. |
["person",
{"created":"2006-11-11T19:23",
"modified":"2006-12-31T23:59"},
["firstName", "Robert"],
["lastName", "Smith"],
["address", {"type":"home"},
["street", "12345 Sixth Ave"],
["city", "Anytown"],
["state", "CA"],
["postalCode", "98765-4321"]
]
]
is equivalent to
<!-- XML representation of a person record -->
<person created="2006-11-11T19:23" modified="2006-12-31T23:59">
<firstName>Robert</firstName>
<lastName>Smith</lastName>
<address type="home">
<street>12345 Sixth Ave</street>
<city>Anytown</city>
<state>CA</state>
<postalCode>98765-4321</postalCode>
</address>
</person> |
||
Recutils | 2010 | Tools and libraries to edit human-editable, plain text databases called recfiles. |
%rec: Book
#%key: Id
#%type: Id int
#%auto: Id
#%unique: ISBN
%mandatory: Title
%type: Location enum loaned home unknown
%doc:
+ A book in my personal collection.
Title: GNU Emacs Manual
Author: Richard M. Stallman
Publisher: FSF
Location: home
Title: The Colour of Magic
Author: Terry Pratchett
Location: loaned
Title: Mio Cid
Author: Anonymous
Location: home |
||
Pug | 2010 | Pug is a high-performance template engine heavily influenced by Haml. |
doctype html
html(lang="en")
head
title= pageTitle
script(type='text/javascript').
if (foo) bar(1 + 5);
body
h1 Pug - node template engine
#container.col
if youAreUsingPug
p You are amazing
else
p Get on it!
p.
Pug is a terse and simple templating language with a
strong focus on performance and powerful features. |
||
HOCON | 2011 | Configuration using HOCON files |
All of these are valid HOCON.
{
"foo" : {
"bar" : 10,
"baz" : 12
}
}
Drop root braces:
"foo" : {
"bar" : 10,
"baz" : 12
}
Drop quotes:
foo : {
bar : 10,
baz : 12
}
Use = and omit it before {:
foo {
bar = 10,
baz = 12
}
Remove commas:
foo {
bar = 10
baz = 12
}
Use dotted notation for unquoted keys:
foo.bar=10
foo.baz=12
Put the dotted-notation fields on a single line:
foo.bar=10, foo.baz=12
|
||
CSON | 2011 | CoffeeScript-Object-Notation. Same as JSON but for CoffeeScript objects. |
Benjamin Lupton | ||
# An Array with no commas!
listOfStuff: [
'alfa'
'beta'
'gamma'
]
# An Object without braces!
stuff:
# Multi-Line Strings! Without Quote Escaping!
information: '''
Rambulations in
ranger roof
calling.
'''
more: 'alfa beta gamma' |
||
SDL | 2012 | Simple Declarative Language was designed to provide a terse and perspicuous format for describing common data structures and data types. |
Daniel Leuck | ||
plants {
trees {
deciduous {
elm
oak
}
}
}
folder "myFiles" color="yellow" protection=on {
folder "my images" {
file "myHouse.jpg" color=true date=2005/11/05
file "myCar.jpg" color=false date=2002/01/05
}
folder "my documents" {
document "resume.pdf"
}
}
// https://sdlang.org/ |
||
MicroXML | 2012 | MicroXML is a subset of XML. |
<comment lang="en" date="2012-09-11">
I <em>love</em> µ<!-- MICRO SIGN -->XML!<br/>
It's so clean & simple.</comment> |
||
FtanML | 2012 | The FtanML Markup Language |
Michael Kay, Stephanie Haupt, Max Altgelt, Julien Bergner, Lukas Graf, Dominik Helm, Axel Kroschk, Uwe von Lpke, My-Tien Nguyen, Sebastian Memer, Suhanyaa Nitkunanantharajah, Jan Landelin Pawellek, and Martin Schmitt | ||
<purchaseOrder
orderDate="1999-10-20"
shipTo = <country="US" [
<name "Alice Smith">
<street "123 Maple Street">
<city "Mill Valley">
<state "CA">
<zip 90952>
]>
billTo = <country="US" [
<name "Robert Smith">
<street "8 Oak Avenue">
<city "Old Town">
<state "PA">
<zip 95819>
]>
comment = |<emph |Hurry|>, my lawn is going wild|
items = [
< partNum="872-AA"
productName="Lawnmower"
quantity=1
USPrice=148.95
comment=|Confirm this is <strong |electric|>|
>
< partNum="926-AA"
productName="Baby Monitor"
quantity=1
USPrice=39.98
shipDate="1999-05-21"
>
]
> |
||
TOML | 2013 | Tom's Obvious Minimal Language. |
Tom Preston-Werner | ||
# This is a TOML document.
title = "ImpalaPay Co."
[database]
server = "192.168.1.1"
ports = [ 8000, 8001, 8002 ]
connection_max = 5000
enabled = true
# Line breaks are okay when inside arrays
hosts = [
"alpha",
"omega"
]
[servers]
# Indentation (tabs and/or spaces) is allowed, but not required
[servers.alpha]
ip = "10.0.0.1"
dc = "eqdc10"
[servers.beta]
ip = "10.0.0.2"
dc = "eqdc10" |
||
UCL | 2013 | Universal configuration library parser |
Vsevolod | ||
param = value;
section {
param = value;
param1 = value1;
flag = true;
number = 10k;
time = 0.2s;
string = "something";
subsection {
host = {
host = "hostname";
port = 900;
}
host = {
host = "hostname";
port = 901;
}
}
} |
||
StrongSwan/swanctl.conf | 2014 | New configuration format for StrongSwan. |
connections {
home {
local {
id = home
auth = psk
}
remote {
id = gw
auth = psk
}
children {
home {
}
}
}
secrets {
ike-home {
id = gw
secret = foobar
}
} |
||
HJSON | 2014 | Hjson, a user interface for JSON. |
Christian Zangl | ||
{
md:
'''
First line.
Second line.
This line is indented by two spaces.
'''
}
{
// use #, // or /**/ comments,
// omit quotes for keys
key: 1
// omit quotes for strings
contains: everything on this line
// omit commas at the end of a line
cool: {
foo: 1
bar: 2
}
// allow trailing commas
list: [
1,
2,
]
// and use multiline strings
realist:
'''
My half empty glass,
I will fill your empty half.
Now you are half full.
'''
} |
||
JSONNET | 2014 | JSON with functions. [configuration generator language] |
Dave Cunningham | ||
// Edit me!
{
person1: {
name: "Alice",
welcome: "Hello " + self.name + "!",
},
person2: self.person1 { name: "Bob" },
} |
||
HCL | 2014 | HCL is a toolkit for creating structured configuration languages that are both human- and machine-friendly, for use with command-line tools. |
io_mode = "async"
service "http" "web_proxy" {
listen_addr = "127.0.0.1:8080"
process "main" {
command = ["/usr/local/bin/awesome-app", "server"]
}
process "mgmt" {
command = ["/usr/local/bin/awesome-app", "mgmt"]
}
} |
||
AXON | 2014 | |
Zaur Shibzukhov | ||
##### Statement form
axon
name: "AXON is eXtended Object Notation"
short_name: "AXON"
python_library: "pyaxon"
atomic_values
int: [0 -1 17]
float: [3.1428 1.5e-17]
decimal: [10D 1000.35D -1.25E+6D]
bool: [true false]
string: "abc абв 中文本"
multiline_string: "one
two
three"
date: ^2012-12-31
time: [^12:30:34 ^12:35:12.000120 ^12:35+03]
datetime: [^2012-12-31T12:30 ^2012-12-31T12:35+03]
binary: |QVhPTiBpcyBlWHRlbmRlZCBPYmplY3QgTm90YXRpb24=
complex_values
list: ["one" "two" "three"]
dict: {
one: 1
three: 3
two: 2}
odered_dict: [
one: 1
three: 3
two: 2]
tuple: ("nodes" "edges")
set: {"a" "b" "c"}
node: person
name: "Alex"
age: 32
##### Formatted expression form
axon {
name: "AXON is eXtended Object Notation"
short_name: "AXON"
python_library: "pyaxon"
atomic_values {
int: [0 -1 17]
float: [3.1428 1.5e-17]
decimal: [10D 1000.35D -1.25E+6D]
bool: [true false]
string: "abc абв 中文本"
multiline_string: "one
two
three"
date: ^2012-12-31
time: [^12:30:34 ^12:35:12.000120 ^12:35+03]
datetime: [2012-12-31T12:30 2012-12-31T12:35+03]
binary: |QVhPTiBpcyBlWHRlbmRlZCBPYmplY3QgTm90YXRpb24=
}
complex_values {
list: ["one" "two" "three"]
dict: {
one: 1
three: 3
two: 2}
odered_dict: [
one: 1
three: 3
two: 2]
tuple: ("nodes" "edges")
set: {"a" "b" "c"}
node: person {
name: "Alex"
age: 32}}} |
||
NIX | 2016 | is a tool for people who both need computers to do exactly as intended, repeatably, far into the future, and who are familiar with command line interfaces and plain text editors. [configuration generator language] |
Domen Kožar | ||
{
string = "hello";
integer = 1;
float = 3.141;
bool = true;
null = null;
list = [ 1 "two" false ];
attribute-set = {
a = "hello";
b = 2;
c = 2.718;
d = false;
}; # comments are supported
} |
||
Dhall | 2017 | Maintainable configuration files. [configuration generator language] |
Gabriel Gonzales | ||
{- You can optionally add types
`x : T` means that `x` has type `T`
-}
let Config : Type =
{- What happens if you add another field here? -}
{ home : Text
, privateKey : Text
, publicKey : Text
}
let makeUser : Text -> Config = \(user : Text) ->
let home : Text = "/home/${user}"
let privateKey : Text = "${home}/.ssh/id_ed25519"
let publicKey : Text = "${privateKey}.pub"
let config : Config = { home, privateKey, publicKey }
in config
let configs : List Config =
[ makeUser "bill"
, makeUser "jane"
]
in configs |
||
ICL | 2017 | ICL is a configuration language, that aims to provide a concise and elegant way to describe your configurations files. [configuration generator language] |
Mahieddine Cherif | ||
::image "mysql" as MySQL {
url = "mysql:5.6",
port = 3306
}
app "hello-world" {
name = "this is
a multiline
string",
price = +4.5
}
app "hello-world" {
icon = <<<EOF R0lGODlhPQBEAPeoAJosMAwOAwHVYZz595kzAPs7P+goOXMv8+fhwv739f
+8PD98fH8mJl+fn9ZWb8PzWlwv6wWGbImAPgTEMImIN9gUFCEmgDALULDN
8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAPZ2ccMDA8PD95eX5NWv
sJCOVNQPtfX8zM8+QePLl38MGBr8JCP+zs9myn8GBqwpAPGxgwJCPny78l
zYLgjAJ8vAP9fX+MjMUcAN8zM9wcM8ZGcATEL+QePdZWf
29ucP9cmJu9MTDImIN+r7+vz8P8VNQGNugV8AAF9fX8swMNg
TAFlDOICAgPNSUnNWSMQ5MBAQEJE3Q
EOF
} |
||
DIXY | 2017 | Dixy is a very simple data format based on dictionaries. |
Kuyawa Kata | ||
# Commentary...
car:
name: Volvo
color: Red
speed: 123.45 |
||
SAN | 2018 | The Simple And Needed configuration format. |
Sylvain Kerkour | ||
# This is a SAN document
title = "SAN Example"
creator = {
name = "Sylvain Kerkour"
website = "https://kerkour.com"
}
database = {
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
}
servers = {
# Indentation (only spaces) is allowed but not required
alpha = {
ip = "10.0.0.1"
dc = "eqdc10"
}
beta = {
ip = "10.0.0.2"
dc = "eqdc10"
}
}
empty_map = {}
hosts = [
"alpha",
"omega",
] |
||
SML | 2018 | XML made simple |
Jean-François Larvoire | ||
xml version="1.0" encoding="UTF-8"
kml {
Folder {
name "Take off zones in the Alps"
open 1
Folder {
name Drome
visibility 0
Placemark {
description "Take off"
name "Mont Rachas"
LookAt {
longitude 5.0116666667
latitude 44.8355
range 4000
tilt 45
heading 0
}
}
}
}
}
} |
||
SCL | 2018 | |
Vincent Prouillet | ||
# This is a SCL document. Boom.
include "base.scl"
owner = {
name = "Vincent Prouillet",
bio = "Someone",
dob = 1979-05-27, # first-class date type
}
database = {
server = "192.168.1.1",
ports = [ 8001, 8001, 8002 ],
connection_max = 5000,
enabled = true,
}
servers = {
max_upload_size = 10Mb, # first class byte size
alpha = {
ip = "10.0.0.1",
dc = "eqdc10",
},
# Inline objects as well
beta = { ip = "10.0.0.2", dc = "eqdc10" },
}
clients = {
data = [
["gamma", "delta"],
[1, 2],
],
hosts = ["alpha", "omega"],
} |
||
ENO | 2018 | A Data Language For Everyone |
Simon Repp | ||
author: Jane Doe
email: jane@eno-lang.org
-- my_content
Multi-line embedded content (e.g. markdown) here ...
-- my_content
states:
active = #fff
hover = #b6b6b6
# cities
Den Haag: 52.069961, 4.302315
Málaga: 36.721447, -4.421291
서울특별시: 37.566984, 126.977041
# cities expanded < cities
Springfield: 38.790312, -77.186418 |
||
CUE | 2018 | An open-source data validation language and inference engine with its roots in logic programming. [configuration generator language] |
Marcel van Lohuizen | ||
Data
moscow: {
name: "Moscow"
pop: 11.92M
capital: true
}
Schema
municipality: {
name: string
pop: int
capital: bool
}
CUE
largeCapital: {
name: string
pop: >5M
capital: true
} |
||
Concise-Encoding | 2018 | Solving today's problems where times are different from the carefree days that brought us XML and JSON. |
Karl Stenerud | ||
c1
[
{
"make" = "Ford"
"model" = "Explorer"
"drive" = "4wd"
"sunroof" = true
"float32 array" = @f32[1.5e10 -8.31e-12]
"hex float" = 0x5.1ec4p+20
"url" = @"https://example.com/"
}
{
"make" = "Toyota"
"model" = "Corolla"
"drive" = "fwd"
"sunroof" = false
@vehicle<"make" "model" "drive" "sunroof"> // type
[
@vehicle{"Ford" "Explorer" "4wd" true } // instance
@vehicle{"Toyota" "Corolla" "fwd" false} // instance
]
"tree" = (2(7 2 1 (6 5 8)) (5 (9 4)))
}
] |
||
Nickel | 2019 | Better configuration for less Write complex configurations. Modular, correct and boilerplate-free. [configuration generator language] |
Yann Hamdaoui et.al. | ||
{
name = "example",
description = m%"
This is an awesome software I'm developing.
Please use it!
"%,
version = "0.1.1",
main = "index.js",
keywords = ["example", "config"],
scripts = {
test = m%"
test.sh --option --install example --version "0.1.1"
"%,
do_stuff = "do_stuff.sh subcommand",
},
contributors = [{
name = "John Doe",
email = "johndoe@example.com"
}, {
name = "Ivy Lane",
url = "https://example.com/ivylane"
}],
dependencies = {
dep1 = "^1.0.0",
dep3 = "6.7"
}
} |
||
NACL | 2019 | NACL is a configuration data language intended to be both human and machine friendly. |
Pierrick Charron, Charle Demers | ||
application {
debug off;
buffer 10MB;
mysql {
host .env (default: "127.0.0.1") MYSQL_HOST;
username .env (default: root) MYSQL_USERNAME;
password .env (default: root) MYSQL_PASSWORD;
port .env (default: 3306, type: int) MYSQL_PORT;
}
servers [
"172.28.0.10",
"172.28.0.5"
]
} |
||
JACL | 2019 | Specification for just another configuration language. |
Yüce Tekol | ||
// This is a Jacl file. Boom.
owner: {
name: "Phillips Redd"
age: 34
bio: """
Coder.
Loves cats.
"""
}
database: {
server: "192.168.1.1"
ports: [8001 8002 8003]
connection_max: 5_000
enabled: true
}
// Some code in the config. Indentation matters only when it should:
source: trim"""
def main():
if True:
print("OK, fine")
else:
print("Not fine")
"""
/*
You can indent as you please, even if it doesn't make sense.
Tabs or spaces. Jacl doesn't care.
Oh, and this is a multiline comment!
*/
servers: {
alpha: {
ip: "10.0.0.1"
dc: "eqdc10"
}
beta: {
ip: "10.0.0.2"
dc: "eqdc10"
}
}
clients: {
data: [
["gamma", "delta"]
[1 2]
]
} |
||
XMQ | 2019 | XMQ - a configuration language, data-storage language, logging language compatible with xml/html and json. |
Fredrik Öhrström | ||
shiporder {
id = 889923
type = container
shipto(sailing = '')
{
address = 'The Vasa Museum
Galärvarvsvägen 14
115 21 Stockholm
Sweden'
// Remember to verify coord.
coord = '''59°19'41.0"N 18°05'29.0"E'''
}
rules
} |
||
HDF | 2020 | HDF stands for Hierarchical Data Format. Alternative to both XML and XSLT |
Brandon Long | ||
age {
Name = My Index
URL = /myindex.html
Menu {
0 = Home
1 = Preferences
2 = Help
3 = Support
}
} |
||
Tree | 2020 | Simple fast compact user-readable binary-safe extensible structural format. |
Dmitry Karlovsky | ||
! doctype html
html
meta @ charset \utf-8
link
@ href \web.css
@ rel \stylesheet
script @ src \web.js
body
h1 \Procter & Gamble |
||
NestedText | 2020 | A Human Friendly Data Format |
Ken & Kale Kundert | ||
# Contact information for our officers
Katheryn McDaniel:
position: president
address:
> 138 Almond Street
> Topeka, Kansas 20697
phone:
cell: 1-210-555-5297
home: 1-210-555-8470
# Katheryn prefers that we always call her on her cell phone.
email: KateMcD@aol.com
additional roles:
- board member |
||
okra | 2020 | A digestible language for data and configuration. |
Cameron Messinides | ||
# Okra consists of simple key-value pairs.
# Each value's type is indicated by the delimiter after the key.
# Strings are delimited by ":"
hello: okra
# Keys and strings can contain spaces.
biological name: Abelmoschus esculentus
# Numbers, delimited by "="
cpus= 16
# Floats and scientific notation are supported.
threshold= 0.8
minimum= 1.1e-10
# Booleans, delimited by "?"
autocomplete? true
# Plain English and shorthand booleans
validate config? yes
dev? n
# Booleans are case insensitive.
verbose? Y
skip tests? False
# (Comments are supported, too.)
# Lists are opened with "/"
packages/
# Okra uses indentation for nesting
cli: 0.1.2
validator: 2.3.18
# Leave off the keys to create a sequential list (array)
benchmarks/
= 4.101
= 4.533
= 3.970
# Sequential lists can contain any type
mixed bag/
= 2
: text
? true
/
nested lists? true |
||
Boulder | 2021 | Boulder - A Perl API for hierarchical tag/value structures. |
Lincoln D. Stein | ||
Name=Lincoln Stein
Home=/u/bush202/lds32
Privileges={
ChangePasswd=yes
Reboot=yes
} |
||
GURA | 2021 | Is a file format for configuration files. Gura is as readable as YAML and simple as TOML. |
Genaro Camele | ||
# This is a comment in a Gura configuration file.
# Define a variable named `title` with string value "Gura Example"
title: "Gura Example"
# Define an object with fields `username` and `age`
# with string and integer values, respectively
# Indentation is used to indicate nesting
person:
username: "Stephen"
age: 20
# Define a list of values
# Line breaks are OK when inside arrays
hosts: [
"alpha",
"omega"
]
# Variables can be defined and referenced to avoid repetition
$foreground: "#FFAH84"
color_scheme:
editor: $foreground
ui: $foreground |
||
Fern | 2021 | A clean and simple storage or configuration format with easy readability, minimal meta-characters, lenient parsing and simple conversion. |
Moderocky | ||
name "Tony"
age 42
height 1.85
weight 70.2
spouse null
likes [ "chicken" "pasta" "bacon" ]
dislikes [ "fish" "ice cream" 74 ]
education (
school "Hartlepool Secondary School"
college "Wisham College"
university null
) |
||
Bicep | 2022 | Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. |
param location string = resourceGroup().location
param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
} |
||
KCL | 2022 | KCL is an open-source, constraint-based record and functional language that enhances the writing of complex configurations, including those for cloud-native scenarios. |
env: str = option("env") or "dev" # The attribute `env` has a default value "den"
database: str = option("database")
hosts = {
dev = "postgres.dev"
stage = "postgres.stage"
prod = "postgres.prod"
}
dbConfig = {
host = hosts[env]
database = database
port = "2023"
conn = "postgres://${host}:${port}/${database}"
} |
||
Config | 2022 | Config is a library for working with structured configuration files in Go. |
Andrew Pillar | ||
# Example configuration file.
net {
listen ":https"
tls {
cert "/var/lib/ssl/server.crt"
key "/var/lib/ssl/server.key"
ciphers ["AES-128SHA256", "AES-256SHA256"]
}
}
log access {
level "info"
file "/var/log/http/access.log"
}
body_limt 50MB
timeout {
read 10m
write 10m
} |
||
Corn | 2022 | A simple and pain-free configuration language. |
Jake Stanger | ||
let {
$entry = "dist/index.js"
$author = { name = "John Smith" email = "mail@example.com" }
} in {
name = "example-package"
version = "1.0.0"
main = $entry
bin.filebrowser = $entry
private = false
author = $author
author.url = "https://example.com"
contributors = [ $author ]
scripts.build = "tsc"
scripts.run = "node dist"
dependencies = {
dotenv = "^8.2.0"
// put the rest of your deps here...
}
devDependencies.typescript = "^4.5"
config.port = 8080
config.hostname = null
} |
||
RCL | 2023 | A reasonable configuration language. [configuration generator language] |
Ruud van Asseldonk | ||
{
// A silly snippet to show some
// features in a limited space.
let data: List[String] = import "data.rcl";
assert
data.contains("Assertions"),
"Assertions are supported";
let f = () => ["List", "Dict", "Set"];
features = [
for d in data: d,
for collection in f():
f"{collection} comprehensions",
],
export-to = "json, yaml, toml, ...",
} |
||
Ink-lang | 2023 | Ink is a configuration language that is a subset of Kotlin. |
Alex Semin | ||
// Flat properties style
server.port = 80
// Nested scoping style
server {
// Overrides the value above!
port = 8080
// Mixed style
auth {
token.refresh = "<token>"
}
}
// Human readable list syntax
testerIds = listOf(1001, 1002)
// Builder style
users = listOf({
name = "Alex"
age = 42
}, {
name = "Bob"
age = 6033
}) |
||
Khi | 2023 | A data language: a source code for data. |
Torm | ||
{article}:
uuid: 0c5aacfe-d828-43c7-a530-12a802af1df4
type: chemical-element
key: aluminium
title: Aluminium
description: The <@element>:{chemical element} aluminium.
tags: [metal; common]
{chemical-element}:
symbol: Al
number: 13
stp-phase: <Solid>
melting-point: 933.47
boiling-point: 2743
density: 2.7
electron-shells: [2; 8; 3]
{references}:
wikipedia: \https://en.wikipedia.org/wiki/Aluminium
snl: \https://snl.no/aluminium
{links}:
element: 740097ea-10fa-4203-b086-58632f099167
chemsym: 6e2f634c-f180-407a-b9ce-2138b412b248
atomnum: 1a5e1974-a78c-4820-afeb-79bef6974814
react: ab7d8a1f-c028-4466-9bb2-41a39d153241
aloxide: c1ff08e7-a88f-42d5-83c3-6adc4835a07b
stab: b3b13474-4fe3-4556-9568-925c066916a5
purity: 40786551-85c4-461c-ba6e-4d54d5863820
ion: effd5c7a-da31-4357-a94c-91343e9a05eb
metal: 84333088-cfcc-4e78-8d3f-7307dcab144b
[content]:
<h1>: Aluminium
<p>: <@self>:Aluminium is a <@element>:{chemical element} with
<@chemsym>:{chemical symbol} <chemsym> and <@atomnum>:{atomic number} <atomnum>.
<h2>: Substance
<p>: In <@purity>:pure form, it is a highly <@react>:reactive {<@metal>:metal},
but normally a thin coat of <@aloxide>:{aluminium oxide} forms on its surface,
keeping it highly {<@stab>:stable}.
<p>: ...
<h2>: Occurrence
<p>: In nature, it occurs as the <@ion>:ion <$>:{<sym>:{Al}^{3+}}. It
constitutes <$>:8.2% of the earth's crust, making it the most common
<@metal>:metal found there.
<p>: ... |
||
Tyson | 2023 | TySON (TypeScript Object Notation) is a subset of TypeScript, chosen to be useful as an embeddable configuration language that generates JSON. |
Daniel Leroto | ||
// example.tson
{
// Single-line comments are supported
array_field: [1, 2, 3],
boolean_field: true,
/* As well as multi-line comments, and multi-line strings.
*
* Multi-line strings are TypeScript template literals, so they also support
* interpolation.
*/
multi_line_string_field: `
line 1
line 2
line ${1 + 2}
`,
number_field: 123,
string_field: 'string',
object_field: {
// Notice that, unlike JSON, field names can be unquoted if they're a valid
// TypeScript identifier.
nested_field: "nested",
}, // Trailing commas are allowed
} |
||
Yam-lang | 2023 | A simple human readable, data oriented configuration language. |
Aigars Šķiliņš | ||
~~ Configuring display.
- <time/>
- version:
"0.1.2"
- background:
svg: <l>background.svg</l>
transparency: 60%
color: !Color(255,255,255)
- !Display
menu: <l>pages/index.html</l>
options: <l>pages/options.html</l>
log_path: logs/display.log
settings:
width: 1920
height: 1080
mode: fullscreen
show_hidden: false
- style: <l>style.yam</l> |
||
PKL | 2024 | A configuration as code language with rich validation and tooling. |
mixedObject {
name = "Pigeon"
lifespan = 8
"wing"
"claw"
["wing"] = "Not related to the _element_ \"wing\""
42
extinct = false
[false] {
description = "Construed object example"
}
} |