Skip to content
Latchkey

TOML vs YAML: qual formato de config?

TOML é um formato de config explícito e fácil de parsear com tipos claros; YAML é flexível e profundamente aninhável, mas tem mais armadilhas de parsing.

TOML busca configuração óbvia e inequívoca com tabelas e tipos explícitos, popular em Rust (Cargo), Python (pyproject.toml) e muitas ferramentas. YAML é mais compacto para aninhamento profundo e suporta anchors e comentários, dominando workflows de CI e manifests do Kubernetes, mas sua tipagem frouxa e sensibilidade a espaço em branco causam bugs sutis. TOML favorece clareza e config plana; YAML favorece estruturas profundas e flexíveis.

TOMLYAML
EstiloTabelas explícitasAninhamento indentado
TiposExplícitos, clarosInferidos (armadilhas)
Aninhamento profundoVerbosoCompacto
ComentáriosSimSim
Melhor paraConfig de app/ferramentaCI, K8s, config profunda

Caso de uso e estrutura

TOML combina com configuração de aplicação e ferramenta que é majoritariamente chave-valor plana com seções, onde legibilidade e tipos previsíveis importam (pyproject.toml, Cargo.toml). YAML combina com config profundamente aninhada e ecossistemas que se padronizaram nele (GitHub Actions, Kubernetes), aceitando suas peculiaridades de espaço em branco e tipagem.

No CI

TOML parseia de forma previsível com menos surpresas; YAML se beneficia de lint e validação de schema para pegar problemas de indentação e tipo. Ambos rodam em managed runners, onde runners mais rápidos encurtam os passos de lint/validação.

O veredito

Config de aplicação ou ferramenta que é plana, explícita e com tipos previsíveis: TOML. Config profundamente aninhada ou ecossistemas construídos em torno dela (CI, Kubernetes): YAML. A escolha costuma ser ditada pela ferramenta; onde você tem liberdade, TOML reduz armadilhas e YAML lida melhor com estrutura profunda.

Guias relacionados