← Назад к статьям

TOML

TOML (Tom's Obvious, Minimal Language) — это простой язык конфигурации, разработанный Томом Престон-Вернером (создатель SemVer, основатель Gravatar и соучредитель GitHub). Язык TOML был создан для обеспечения удобочитаемости и легкости в использовании при написании файлов конфигурации. TOML имеет простой и понятный синтаксис, использующий пары ключ/значение. Файлы конфигурации описываются в файлах с расширением *.toml.

Активно используется в Rust для указания зависимостей библиотек Cargo (менеджер пакетов и система сборки в Rust). В Rust можно начинать знакомство с библиотекой с файла cargo.toml. В нем описаны зависимости и информация о библиотеке.

Основные особенности языка TOML включают:

  • Поддержка различных типов данных, таких как строки, числа, булевы значения и даты.
  • Возможность использования комментариев для пояснения значений в файле конфигурации.
  • Поддержка вложенных структур данных и списков.
  • Поддержка многострочных строк и специальных символов.
  • Легкость в чтении и записи файлов конфигурации.

Язык TOML является очень гибким и удобным для использования при настройке и конфигурировании различных приложений и систем.

Вот несколько примеров синтаксиса TOML:

# Простые параметры ключ = значение. Поддерживаются разные типы
integer = 12
float = 1.23
string = "not empty string"
datetime = 2023-11-19
# Пример многострочной строки
description = """
Это многострочный текст.
Можно использовать несколько строк.
"""

# Объявление таблицы начинается с [table_name]. 
# Пустая строка в конце отделяет таблицу от других параметров. 
# Запись ниже эквивалент в json {"server": {"ip": "127.0.0.1", "port": 8080}}
[server]
ip = "127.0.0.1"
port = 8080

# Пример списка
fruits = ["apple", "banana", "orange"]

# Несколько вариантов описания вложенной структуры
[database]
host = "localhost"
port = 5432
username = "admin"
password = "password"

# Или такой вариант
database_second = { host = "localhost", port = 5432, username = "admin", password = "password"}

# третий вариант
database_third.host = "localhost"
database_third.port = 5432
database_third.username = "admin"
database_third.password = "password"

Это лишь некоторые примеры синтаксиса языка TOML. Больше примеров в документации.