YAML that stands for YAML Ain't Markup Language is a human friendly data serialization format with implementations in many programming languages. (See Wikipedia on YAML.)

It is similar to JSON, but looks much nicer and much more readable.

It is usually used for configuration files that need more power that an INI file.

Example

This is a sample configuration file used for the code running the Code Maven web site:

examples/data/code_maven_config.yml

# This is the main configuration file of the Code-Maven web site
appname: "Code::Maven"
layout: "system"

# when the charset is set to UTF-8 Dancer will handle for you
# all the magic of encoding and decoding. You should not care
# about unicode within your app when this setting is set (recommended).
charset: "UTF-8"

mymaven_yml: "config/mymaven.yml"

template: "template_toolkit"
engines:
  template:
    template_toolkit:
      encoding:  'utf8'
      INCLUDE_PATH:
        - 'views'
        - 'config/templates'
      start_tag: '<%'
      end_tag:   '%>'

session: "JSON"

Implementations and examples