By Tom Preston-Werner.
設定ファイルを記述するための言語
# 例
title = "TOML example"
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
基本的に key = value
形式で記述
id = 10
name = "snowcrush"
birthday = 1980-01-01T00:00:00Z # RFC3339
speed = 1.5e-3 # or 0.0015
#=> {"id":10,
# "name":"snowcrush",
# "birthday": "1980-01-01T00:00:00Z",
# "speed": 0.0015}
テーブル(連想配列)はテーブル名を宣言
[table]
element = 1
# => {"table": {"element": 1}}
ネストしたテーブルはドットで名前をつなぐ
[app]
name = "app1"
[app.rootuser]
name = "snowcrush"
[app.database]
host = "192.168.0.100"
port = 5432
# => {"app":
# {"name": "app1",
# "rootuser": {"name": "snowcrush"},
# "database": {"host": "192.168.0.100", "port": 5432}}}
テーブルの配列という記法もある
[[array_of_table]]
id = 10
[[array_of_table]]
id = 20
# => {"array_of_table": [{"id":10},{"id":20}]}
| 実際、YAMLの仕様が複雑すぎるのが開発の動機の一つらしい
利用例
dep
Cargo
GitLab
InfluxDB
hugo
Ruby
今後も、わりと広く使われると思います