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. Больше примеров в документации.