ToolDeck

TOML

2 ferramentas

As ferramentas TOML do ToolDeck permitem formatar, validar e converter arquivos de configuração TOML diretamente no navegador — sem instalação, sem cadastro e sem envio de dados para nenhum servidor. O Formatador TOML analisa sua entrada TOML e a reserializa com indentação consistente, ordenação normalizada de chaves e erros de validação inline que apontam com precisão os problemas de sintaxe. O Conversor TOML para JSON transforma documentos TOML em seus equivalentes JSON, preservando os tipos de dados, incluindo datetimes, tabelas inline e arrays de tabelas. Ambas as ferramentas funcionam inteiramente no lado do cliente, para que seus arquivos de configuração — que frequentemente contêm credenciais de banco de dados, endpoints de API e segredos de implantação — permaneçam na sua máquina. Se precisar da direção inversa, o Conversor JSON para TOML na categoria JSON realiza essa conversão.

O que são Ferramentas TOML?

TOML (Tom's Obvious, Minimal Language) é um formato de arquivo de configuração construído em torno de uma sintaxe explícita e sem ambiguidades. Criado por Tom Preston-Werner, cofundador do GitHub, o TOML foi lançado pela primeira vez em 2013 e atingiu sua especificação 1.0 em janeiro de 2021. O formato mapeia de forma inequívoca para uma tabela hash: cada arquivo TOML define uma árvore de pares chave-valor organizados em tabelas (seções marcadas por [colchetes]). Diferente do YAML, o TOML não depende de indentação para estrutura, o que elimina toda uma classe de bugs de análise relacionados a espaços em branco. Diferente do JSON, o TOML suporta comentários, tipos nativos de data/hora e strings multilinha — recursos que arquivos de configuração precisam, mas que o JSON nunca foi projetado para fornecer.

Ferramentas TOML automatizam o trabalho mecânico de ler, validar e converter arquivos TOML. Ferramentas de formatação normalizam a indentação e a ordenação de chaves para que os arquivos de configuração permaneçam legíveis em toda a equipe, mesmo quando vários colaboradores editam o mesmo arquivo. Ferramentas de conversão traduzem entre TOML e JSON, o que é útil quando uma biblioteca ou API espera entrada JSON, mas sua fonte de verdade é uma configuração TOML. A validação detecta erros de sintaxe — um colchete de fechamento faltando, uma chave duplicada ou um literal datetime inválido — antes que causem falhas na inicialização da aplicação.

Essas tarefas surgem com frequência em projetos Rust (onde Cargo.toml é o manifesto do pacote), em empacotamento Python (pyproject.toml substituiu setup.py como configuração de build padrão no PEP 518 e PEP 621), em sites estáticos Hugo (que usam TOML para configuração do site por padrão) e em qualquer configuração de infraestrutura que armazene configurações em arquivos TOML. A especificação TOML é mantida em toml.io, e existem parsers para todas as principais linguagens de programação.

Por que Usar Ferramentas TOML no ToolDeck?

As ferramentas TOML do ToolDeck analisam e processam tudo dentro da aba do seu navegador usando JavaScript. Nenhum dado de configuração é transmitido para um servidor, nenhuma conta é necessária, e as ferramentas funcionam offline após o carregamento inicial da página.

🔒
Privado por padrão
Arquivos de configuração frequentemente contêm valores sensíveis — URLs de banco de dados, chaves de API, alvos de implantação. O ToolDeck processa TOML inteiramente no lado do cliente, então nada sai do seu navegador. Seguro para projetos proprietários e configurações de infraestrutura interna.
Feedback instantâneo
Cole TOML e veja a saída formatada ou JSON imediatamente. Erros de sintaxe são reportados com números de linha e descrições. Sem esperar que uma ferramenta CLI seja instalada ou que uma etapa de build seja concluída.
🔄
Conversão de tipos precisa
O conversor TOML para JSON preserva tipos específicos do TOML como datetimes com offset, datas locais e horas locais como strings ISO 8601. A precisão de inteiros e floats é mantida. Arrays de tabelas mapeiam corretamente para arrays JSON de objetos.
🌐
Sem instalação necessária
Funciona em qualquer dispositivo com um navegador moderno. Útil quando você está revisando um pull request em uma máquina sem seu ambiente de desenvolvimento habitual, ou quando precisa validar rapidamente um arquivo TOML de um colega.

Casos de Uso das Ferramentas TOML

Formatação, validação e conversão de TOML surgem em diferentes funções e tipos de projeto. Desenvolvedores Rust trabalham com Cargo.toml diariamente. Desenvolvedores Python configuram builds e ferramentas através do pyproject.toml. Engenheiros de DevOps gerenciam configurações de aplicação distribuídas como TOML. As tarefas abaixo mostram onde ferramentas TOML baseadas em navegador economizam tempo em comparação com escrever um script ad hoc ou instalar uma ferramenta CLI.

Limpeza do Cargo.toml
Após mesclar várias adições de dependências, o Cargo.toml de um projeto Rust ficou com formatação inconsistente. Execute-o através do Formatador TOML para normalizar a indentação e a ordem das chaves antes de fazer o commit.
pyproject.toml para JSON
Um pipeline de CI precisa de metadados de build em formato JSON, mas a fonte de verdade é o pyproject.toml. Use o Conversor TOML para JSON para gerar a representação JSON e verificar o mapeamento antes de automatizar a conversão no seu pipeline.
Migração de configuração
Migrando uma aplicação de configuração baseada em JSON para TOML (ou vice-versa). O Conversor TOML para JSON permite comparar as duas representações lado a lado para confirmar que os tipos de dados, estruturas aninhadas e semântica de arrays são preservados.
Depuração de sintaxe
Um arquivo de configuração TOML falha ao analisar na inicialização da aplicação com uma mensagem de erro opaca. Cole-o no Formatador TOML para obter números de linha e coluna específicos para o erro de sintaxe, além de uma descrição do que o parser esperava.
Geração de documentação
Escrevendo documentação que inclui exemplos de configuração nos formatos TOML e JSON. Converta o exemplo TOML canônico através do Conversor TOML para JSON para que ambas as versões permaneçam sincronizadas sem transcrição manual.
Aprendendo sintaxe TOML
Desenvolvedores novos no TOML podem experimentar o formato escrevendo TOML no Formatador TOML, vendo erros de validação em tempo real e comparando a estrutura com a saída formatada. Isso é mais rápido do que ler a especificação sozinho.

Referência de Tipos de Dados TOML

O TOML v1.0 define os seguintes tipos de dados. Cada tipo mapeia para uma representação específica ao ser convertido para JSON. A tabela abaixo cobre sintaxe, exemplos e comportamento de conversão para cada tipo TOML.

TipoSintaxeExemploMapeamento JSON
String"..." ou '...'name = "TOML"String JSON. Strings básicas suportam sequências de escape (\n, \t, \u). Strings literais ('...') tratam barras invertidas como caracteres literais.
Integerdígitos, 0x, 0o, 0bport = 8080Número JSON. Suporta hexadecimal (0xDEAD), octal (0o755), binário (0b1010) e separadores de underscore (1_000).
Floatdígitos com . ou epi = 3.14159Número JSON. Suporta inf, -inf e nan (mapeados para null ou string em JSON, já que JSON não tem NaN).
Booleantrue / falseenabled = trueBoolean JSON. Apenas true e false em minúsculas são válidos.
Offset Date-TimeRFC 33392024-01-15T09:30:00ZString JSON (ISO 8601). Inclui offset de fuso horário. Não há tipo nativo de datetime em JSON.
Local Date-Timedate T time2024-01-15T09:30:00String JSON. Sem informação de fuso horário. Útil para horários de relógio de parede.
Local DateYYYY-MM-DD2024-01-15String JSON. Data sem componente de hora.
Local TimeHH:MM:SS09:30:00String JSON. Hora sem data ou fuso horário.
Array[valor, ...]ports = [8080, 8443]Array JSON. Arrays TOML podem ser heterogêneos no TOML v1.0, mas devem ser homogêneos na v0.5.
TabletomlCategoryContent.r10Syntax[database]Objeto JSON. Tabelas padrão usam [colchetes]. Tabelas inline usam chaves em uma única linha.

A especificação TOML v1.0.0 (toml.io) é a versão estável atual. Arrays de tabelas usam [[colchetes duplos]] para definir entradas de tabela repetidas, mapeando para arrays JSON de objetos.

Como Escolher a Ferramenta TOML Certa

O ToolDeck tem três ferramentas que trabalham com arquivos TOML. Duas estão na categoria TOML e uma está na categoria JSON para a direção de conversão inversa. Escolha a ferramenta que corresponde à sua tarefa.

  1. 1
    Se você precisa reindentar um arquivo TOML, normalizar a ordenação de chaves ou validar sintaxe TOML com relatório de erros por linhaFormatador TOML
  2. 2
    Se você precisa converter um arquivo de configuração TOML em JSON para uso em APIs, scripts ou ferramentas que esperam entrada JSONConversor TOML para JSON
  3. 3
    Se você precisa converter um documento JSON em formato TOML para projetos que usam TOML como padrão de configuraçãoConversor JSON para TOML

Para o trabalho TOML do dia a dia, o Formatador TOML lida com formatação e validação em uma única etapa — cole seu TOML e ele produzirá uma saída limpa ou indicará exatamente onde está o erro de sintaxe. Quando você precisar fazer a ponte entre TOML e JSON, o Conversor TOML para JSON preserva todos os tipos de dados TOML, incluindo datetimes e tabelas aninhadas. Para a direção inversa (JSON para TOML), use o Conversor JSON para TOML na categoria JSON. Se você estiver depurando uma configuração que falha ao analisar, comece com o Formatador TOML: suas mensagens de erro incluem números de linha e descrições de tokens esperados que são mais específicas do que o que a maioria dos parsers TOML no nível de aplicação reporta.

Perguntas Frequentes

Qual é a diferença entre TOML e YAML?
TOML usa sintaxe explícita de colchetes para tabelas e não depende de indentação para estrutura. YAML usa indentação para definir hierarquia, o que o torna sensível a erros de espaço em branco — um único espaço mal posicionado pode alterar completamente a estrutura analisada. TOML também tem tipos nativos de data/hora e proíbe chaves duplicadas, enquanto YAML silenciosamente usa o último valor quando uma chave aparece duas vezes. TOML é geralmente preferido para configuração de aplicações, enquanto YAML é mais comum em manifestos Kubernetes e definições de pipelines de CI/CD, onde seu suporte a múltiplos documentos e anchors/aliases são úteis.
Qual é a diferença entre TOML e JSON?
JSON é um formato de intercâmbio de dados projetado para comunicação máquina a máquina. TOML é um formato de configuração projetado para humanos lerem e editarem. TOML suporta comentários (linhas começando com #), tipos nativos de datetime, strings multilinha e tabelas que reduzem a profundidade de aninhamento. JSON não suporta comentários, não tem tipo de data e requer aninhamento explícito com chaves. JSON é a escolha certa para payloads de API e armazenamento de dados; TOML é a escolha certa para arquivos de configuração que humanos editam manualmente.
TOML consegue representar todas as estruturas de dados JSON?
TOML pode representar a maioria das estruturas JSON, mas há casos extremos. TOML não suporta valores null — não há equivalente TOML para null em JSON. As chaves TOML devem ser strings, o que corresponde às chaves de objetos JSON. Arrays TOML eram restritos a tipos homogêneos na v0.5, mas o TOML v1.0 permite arrays de tipos mistos. Objetos JSON profundamente aninhados podem se tornar verbosos em TOML porque cada nível de aninhamento requer um cabeçalho de tabela separado.
Quais projetos usam TOML para configuração?
O sistema de build Cargo do Rust usa Cargo.toml como seu manifesto de pacote. Python adotou pyproject.toml como o arquivo de configuração de build padrão através do PEP 518 (2016) e PEP 621 (2020). Hugo, o gerador de sites estáticos, usa TOML para configuração do site por padrão. O InfluxDB usa TOML para sua configuração de servidor. O sistema de módulos Go considerou TOML, mas escolheu seu próprio formato; no entanto, muitos projetos Go ainda usam TOML para configuração no nível de aplicação via bibliotecas como BurntSushi/toml e pelletier/go-toml.
Como TOML lida com comentários?
TOML suporta comentários de linha completa e comentários de fim de linha usando o caractere #. Tudo do # até o final da linha é ignorado pelo parser. Comentários não podem aparecer dentro de strings básicas multilinha ou strings literais multilinha. Ao converter TOML para JSON, os comentários são descartados porque JSON não tem sintaxe de comentários. Isso significa que uma ida e volta de TOML para JSON e de volta para TOML perderá todos os comentários do arquivo original.
O que são arrays de tabelas em TOML?
Arrays de tabelas usam a sintaxe [[colchetes duplos]] para definir entradas repetidas da mesma estrutura de tabela. Por exemplo, [[servers]] aparecendo duas vezes cria um array com dois objetos de servidor. Em JSON, isso mapeia para um array de objetos. Arrays de tabelas são comumente usados para listas de dependências, definições de servidores ou configurações de plugins onde cada entrada tem o mesmo conjunto de chaves.
TOML é sensível a espaços em branco?
TOML não é sensível à indentação. A indentação é puramente cosmética e não afeta a análise. No entanto, TOML requer newlines para separar pares chave-valor — você não pode colocar dois pares chave-valor na mesma linha (exceto dentro de tabelas inline). Tabelas inline devem caber em uma única linha e não podem conter newlines. Esse design evita os bugs baseados em indentação que são comuns em arquivos YAML.
O que acontece com valores datetime do TOML ao converter para JSON?
JSON não tem tipo nativo de datetime, então os datetimes TOML são convertidos para strings ISO 8601. Datetimes com offset (como 2024-01-15T09:30:00Z) mantêm seu offset de fuso horário na representação em string. Datetimes locais, datas locais e horas locais são cada um serializado como strings sem informação de fuso horário. A conversão é sem perda no sentido de que o valor original pode ser analisado de volta a partir da string, mas o consumidor JSON deve saber tratar essas strings como datas em vez de texto arbitrário.