Конвертер YAML ↔ TOML 🔒 Ваши данные не покидают браузер.
Конвертируйте конфигурационные файлы между YAML и TOML.
Ctrl+SСкачать
Об этом инструменте
YAML и TOML описывают одну и ту же идею структурированной конфигурации, но с разным синтаксисом и разными областями применения. YAML доминирует в манифестах Kubernetes, файлах Docker Compose и CI-пайплайнах (GitHub Actions, GitLab CI); TOML — предпочтительный формат для Cargo.toml в Rust и pyproject.toml в Python. Перенос настроек из сервиса Compose в проект на Cargo — или наоборот — обычно означает переписывание всего вручную. Этот онлайн-конвертер YAML в TOML (и обратно, TOML в YAML) переводит в обе стороны мгновенно, сохраняя вложенные таблицы, массивы и типы данных.
Работает на библиотеках js-yaml и smol-toml, загружаемых только на этой странице. Ваши конфигурационные файлы никогда не покидают браузер — это безопасно даже для файлов с внутренними именами хостов, портами или названиями окружений.
Частые вопросы
Для чего используется YAML, а для чего TOML?
YAML — стандарт для манифестов Kubernetes, файлов Docker Compose и CI-пайплайнов (GitHub Actions, GitLab CI) — он хорошо справляется с глубокой вложенностью. TOML — формат, который использует Cargo.toml в Rust и pyproject.toml в Python — он больше похож на .ini-файл и популярен там, где важна плоская, удобная для ручного редактирования конфигурация. Конвертация между ними часто нужна при переносе настроек из контейнерного проекта в проект на Rust или Python и наоборот.
Сохранятся ли мои комментарии при конвертации между YAML и TOML?
Нет — и это распространённая ловушка. И YAML, и TOML отбрасывают комментарии при чтении документа; сохраняются только данные. Этот инструмент разбирает ваш ввод в объект в памяти и заново сериализует его с нуля, поэтому любые комментарии `#` в обоих форматах теряются в результате. Если комментарий фиксирует что-то важное, скопируйте его вручную после конвертации.
Корректно ли конвертируется туда-обратно синтаксис массива таблиц ([[section]])?
Да. `[[section]]` в TOML — это просто массив, элементы которого являются таблицами (объектами). При конвертации TOML → YAML он превращается в обычную YAML-последовательность отображений; обратная конвертация этой последовательности в TOML восстанавливает блоки `[[section]]`, потому что smol-toml распознаёт «массив, все элементы которого — простые объекты», и автоматически выводит для него синтаксис массива таблиц.
Загружаются ли мои данные YAML или TOML куда-либо?
Нет. Конвертация полностью выполняется в вашем браузере с помощью JavaScript-библиотек js-yaml и smol-toml — всё, что вы вводите или вставляете здесь, никогда не отправляется на сервер. Это делает инструмент безопасным даже для конфигурационных файлов с внутренними именами хостов, заглушками учётных данных или другими деталями, специфичными для окружения.
Как превратить настройки моего docker-compose.yml в TOML-конфиг для проекта на Rust или Python?
Переключитесь на вкладку «YAML → TOML», вставьте нужную часть вашего docker-compose.yml (например, только блок `environment:` одного сервиса или добавленный вами кастомный блок настроек) — эквивалентный TOML сразу появится справа и будет готов для вставки в Cargo.toml, pyproject.toml или любой кастомный `.toml`-файл конфигурации, который читает ваше приложение. Учтите, что весь вставленный документ на верхнем уровне должен быть одним объектом; если вставить весь compose-файл начиная с `services:`, всё в порядке, так как это отображение, но голый список (например, только массив `ports:`) выдаст ошибку, поскольку TOML не умеет представлять массив как корневой документ.
Могу ли я конвертировать TOML обратно в YAML, а не только YAML в TOML?
Да — это двусторонний конвертер. Нажмите вкладку «TOML → YAML» (или кнопку «Поменять местами» после конвертации YAML → TOML), чтобы вставить TOML и получить эквивалентный YAML, с выбранной вами шириной отступа, применённой к результату. В обоих направлениях используется один и тот же подход «сначала разобрать, потом заново сериализовать», поэтому вложенные таблицы, массивы и array-of-tables корректно конвертируются в любую сторону.