TOML, JSON и YAML — три формата для хранения конфигурационных данных. Каждый занял свою нишу: TOML распространён в Rust и Python-экосистемах, JSON — в веб-API и Node.js, YAML — в DevOps-инструментах. Когда нужно перенести конфигурацию из одного формата в другой, помогает онлайн-конвертер.
Что такое TOML
TOML (Tom's Obvious Minimal Language) создал Том Престон-Вернер, сооснователь GitHub, в 2013 году. Цель — конфигурационный формат, который легко читается человеком и однозначно разбирается машиной.
Ключевые характеристики:
- Строгая типизация: строки, целые числа, дроби, булевы, дата/время, массивы, таблицы
- Нет неоднозначностей (в отличие от YAML с его автоматическим угадыванием типов)
- Поддержка вложенности через таблицы и массивы таблиц
- Комментарии (недоступны в JSON)
Синтаксис TOML: основы
Строки и числа:
name = "rechecker"
version = "1.0.0"
port = 3000
debug = false
ratio = 1.5
Массивы:
tags = ["web", "seo", "tools"]
ports = [8080, 8443]
Таблицы (объекты):
[database]
host = "localhost"
port = 5432
name = "mydb"
Массивы таблиц:
[[servers]]
name = "alpha"
ip = "10.0.0.1"
[[servers]]
name = "beta"
ip = "10.0.0.2"
Даты и время:
created_at = 2026-03-17T12:00:00Z
date_only = 2026-03-17
Сравнение TOML, JSON, YAML
| Критерий | TOML | JSON | YAML |
|---|---|---|---|
| Комментарии | Да (#) | Нет | Да (#) |
| Читаемость | Высокая | Средняя | Высокая |
| Строгость типов | Высокая | Средняя | Низкая |
| Поддержка дат | Нативная | Нет | Нет (строки) |
| Применение | Rust, Python, Hugo | Веб-API, Node.js | Docker, K8s, CI |
| Вложенность | Через таблицы | Объекты | Отступы |
Реальные примеры: Cargo.toml и pyproject.toml
Cargo.toml — манифест Rust-проекта:
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
Эквивалент в JSON:
{
"package": {
"name": "my-app",
"version": "0.1.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
}
Когда использовать каждый формат
TOML — для конфигурационных файлов, которые редактируют люди: Cargo.toml, pyproject.toml, config.toml в Hugo, Cargo.lock. Хорош, когда важны комментарии и типизированные даты.
JSON — для обмена данными между системами, API-ответов, пакетных манифестов (package.json). Поддерживается везде «из коробки».
YAML — для сложных иерархических конфигураций с многострочными строками: docker-compose.yml, Kubernetes-манифесты, GitHub Actions.
Для работы с JSON-данными используйте JSON Formatter. Конвертер YAML в JSON доступен в YAML ↔ JSON.
Инструмент на reChecker
Конвертер TOML ↔ JSON на reChecker преобразует формат мгновенно: вставьте TOML — получите JSON, или наоборот. Удобно при переносе конфигурации между экосистемами.