YAML: простой гайд по конфигурационным файлам

YAML — язык, преимущественно используемый для создания конфигурационных файлов. Созданный Клейтоном Р. Эваном в 2001 году, он задумывался как альтернатива XML и JSON. Изначально аббревиатура YAML расшифровывалась как «Yet Another Markup Language» (Ещё один язык разметки), но позже её изменили, подчеркнув, что YAML не является языком разметки. Расширения файлов YAML: .yaml или .yml.

Синтаксис

В качестве разделителей в YAML вместо скобок используются пробелы (обычно два). Символ табуляции (Tab) использовать нельзя. Базовой структурой YAML является словарь — пары «ключ: значение». Комментарии добавляются с помощью символа #.

Значения данных

YAML поддерживает следующие типы данных:

  • Строки: Добавляются после двоеточия. Двойные кавычки не обязательны, но подчеркивают, что значение — строка.
  • Числа: YAML поддерживает числовые значения.
  • Логические значения: YAML поддерживает булевы значения (true/false).
  • Списки: Элементы списка находятся на отдельных строках с отступом (обычно два пробела), перед каждым элементом ставится символ -.
  • Словари: Значением может быть словарь, пары «ключ: значение» которого находятся на отдельных строках с отступом.

Порядок элементов в списках важен, порядок ключей в словарях — нет.

Пример вложенного словаря:

ИО:
  адрес:
    город: Москва
    улица: Тверская
  контакты:
    телефон: "+7 916 123 45 67"
    email: example@example.com

Пример списка словарей:

студенты:
  - имя: Иван
    инструктор: Сергей
    год: 2024
  - имя: Мария
    инструктор: Анна
    год: 2023
  - имя: Петр
    инструктор: Дмитрий
    год: 2024

Короткий формат:

Списки можно записывать в квадратных скобках [], словари — в фигурных скобках {}. Этот формат удобен для коротких списков и словарей.

Применение

YAML используется во многих фреймворках, языках программирования и утилитах, например:

  • Frontend (React): Создание конфигурационных файлов для разработки и продакшена.
  • Docker Compose: Запуск нескольких контейнеров одновременно.
  • Kubernetes: Настройка деплойментов в продакшене.

Сравнение с другими форматами

YAML — самый компактный формат по сравнению с JSON и XML. Файл YAML, как правило, занимает меньше места, чем аналогичный файл в JSON (почти вдвое) и XML (значительно меньше).

YAML — удобный и компактный формат для создания конфигурационных файлов. Однако, из-за простоты синтаксиса, легко допустить ошибки, например, пропустив пробел.

Что будем искать? Например,программа