TOML - TOML

TOML
Расширение имени файла
.toml
Тип интернет-СМИНе зарегистрирован[1]
РазработанТом Престон-Вернер
Сообщество
изначальный выпуск23 февраля 2013 г.; 7 лет назад (2013-02-23)
Последний релиз
v1.0.0-rc.1
(3 апреля 2020 г.; 8 месяцев назад (2020-04-03))
Тип форматаОбмен данными
Открытый формат ?да
Интернет сайтToml.io Отредактируйте это в Викиданных

TOML это формат файла за файлы конфигурации. Он предназначен для легкого чтения и записи благодаря очевидной семантике, которая стремится быть «минимальной», и предназначена для однозначного отображения на толковый словарь. Его спецификация Открытый исходный код, и получает вклад сообщества. TOML используется в ряде программных проектов,[2][3][неосновной источник необходим ] и реализован на многих языках программирования.[4] Название «TOML» - это аббревиатура от «Tom's Obvious, Minimal Language».[5] ссылаясь на своего создателя, Том Престон-Вернер.

Синтаксис

Синтаксис TOML в основном состоит из ключ = "значение" пары, [названия разделов], и # Комментарии. Синтаксис TOML несколько напоминает синтаксис.Файлы INI, но он включает формальную спецификацию, тогда как формат файла INI страдает от множества конкурирующих вариантов.

Его спецификация включает список поддерживаемых типов данных: String, Integer, Float, Boolean, Datetime, Array и Table.

пример

# Это документ TOML.заглавие = "Пример TOML"[владелец]имя = "Том Престон-Вернер"доб = 1979-05-27T07: 32: 00-08: 00 # Свидания в первом классе[база данных]сервер = "192.168.1.1"порты = [ 8000, 8001, 8002 ]connection_max = 5000включен = правда[серверы]  # Отступы (табуляции и / или пробелы) разрешены, но не обязательны  [server.alpha]  ip = "10.0.0.1"  Округ Колумбия = "eqdc10"  [server.beta]  ip = "10.0.0.2"  Округ Колумбия = "eqdc10"[клиенты]данные = [[«гамма», «дельта»], [1, 2]]# Разрывы строк допустимы внутри массивовхозяева = [  "альфа",  "омега"]

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

Следующая таблица основана на Спецификация TOML для сравнения с другими популярными форматами конфигурации (INI, JSON, и YAML ). Смотрите также BespON как представлено на SciPy 2017[6], а также обсуждение использования TOML для параметризации имитационного моделирования.[7]

Сравнение форматов
ФорматФормальный стандартГибкий стандартСильно типизированныйПростая реализация[нужна цитата ]Человек читаемыйРазрешает комментарии
JSONдаНетдададаНет
YAMLдаНетдаНет[8]дада
TOMLдаНетдададада
INIНетдаНетдадада

Критика

С момента своего первого выпуска TOML получил несколько критических замечаний. В StrictYAML В проекте TOML перечислены следующие точки как проблемные:[9]

  • TOML многословный, не СУХИЙ и синтаксически шумный
  • Иерархии TOML трудно вывести только из синтаксиса
  • Чрезмерное усложнение: как и YAML, в TOML слишком много функций.
  • В TOML синтаксис определяет типы данных («типизация синтаксиса»)

В libconfini проект с тех пор выпустил более развернутую критику TOML от INI перспектива,[10] перечисление следующих пунктов (среди прочего) как проблемных:

  • TOML позволяет файлу конфигурации определять типы данных (тип синтаксиса), когда де-факто решение принимает клиентское приложение, и любой несоответствующий тип в любом случае будет либо проигнорирован, либо преобразован в ожидаемый тип (в зависимости от парсера)
  • TOML заново представляет то, от чего обычно пытаются избавиться дружественные к человеку языки: подробный синтаксис и необходимость использования кавычек для строк.
  • Синтаксис TOML всегда чувствителен к регистру, несмотря на то, что бывают ситуации, когда файлы конфигурации должен быть нечувствительным к регистру (как, например, файлы конфигурации, отображающие файловую систему FAT32 или HTML-теги)
  • TOML использует квадратные скобки для массивов, хотя квадратные скобки уже зарезервированы для имен таблиц; кроме того, любой специальный синтаксис для массивов возвращает язык к синтаксической типизации
  • Таблица TOML должна быть заполнена за один шаг, поэтому объединение нескольких файлов TOML проблематично.
  • TOML произвольно вводит синтаксис для дат
  • TOML разрешает (но не рекомендует) использовать пустую строку в качестве ключа
  • Правила TOML не могут быть выведены из содержимого, поэтому для редактирования файла TOML требуется предварительное знание языка.
  • TOML обратно несовместим с INI

Смотрите также

Рекомендации

  1. ^ Существует предложение типа MIME для TOML, состоящее из приложение / toml, но это никогда не было официально зарегистрировано среди Типы носителей IANA.
  2. ^ «Проекты с использованием TOML - TOML Wiki».
  3. ^ «Формат манифеста - грузовая книга».
  4. ^ «Реализации - TOML Wiki».
  5. ^ "GitHub - toml-lang / toml: очевидный, минимальный язык Тома".
  6. ^ https://conference.scipy.org/proceedings/scipy2017/geoffrey_poore.html
  7. ^ https://subversion.american.edu/aisaac/notes/toml-intro.html
  8. ^ https://news.ycombinator.com/item?id=7938180
  9. ^ Что не так с TOML?
  10. ^ Критика TOML со стороны INI

внешняя ссылка