Configuração TOML (.toml)

Especificação Padrão

Tom's Obvious Minimal Language (TOML) é um formato de configuração sem ambiguidades e centrado em humanos, criado pelo co-fundador do GitHub, Tom Preston-Werner, e amplamente adotado em ecossistemas de programação modernos, incluindo Rust (Cargo) e Python (pyproject.toml).

Converter TOML para JSON

Conversor gratuito de TOML para JSON no navegador. Converta arquivos instantaneamente no seu dispositivo.

Inspecionar e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos TOML inspecionando a sequência de bytes binários inicial:

Selecione ou solte os arquivos aqui

Conversão 100% privada no navegador - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de Privacidade com Zero Transmissão de Rede: 0 bytes enviados para servidores externos. Todo o processamento ocorreu localmente no sandbox do seu navegador.

Assinatura de Cabeçalho em Nível de Byte (Magic Bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos TOML inspecionando a sequência de bytes binários inicial:

ASSINATURA HEX (OFFSET 0):

5B ... 5D

REPRESENTAÇÃO ASCII: [...]

Padronização: Especificação TOML v1.0.0

Especificações Técnicas

Arquitetura do ContêinerArquivo de configuração legível por humanos mapeando inequivocamente para uma tabela hash, estruturado com [tabelas] e pares chave = valor
CompressãoFluxo de texto não compactado
Ordem de Bytes (Endianness)Fluxo de texto UTF-8
Espaços de CoresN/A (Arquivo de Configuração)
Canais e EstruturaTabelas, matrizes de tabelas, tabelas embutidas, strings, inteiros, pontos flutuantes, booleanos e datas/horas do RFC 3339
Dimensões MáximasComprimento de texto ilimitado
TransparênciaNenhum
Streaming e ProgressivoAnálise de configuração sequencial linha por linha

Matriz de Comparação Técnica: TOML vs Concorrentes

Atributo TécnicoTOML (Atual)YAMLJSONINI
Risco de AmbiguidadeZero (especificação estritamente inequívoca)Alto (bugs booleanos do 'problema da Noruega' no YAML)Zero (tipos de dados estritos)Moderado (sem padrão formal)
Tipos de Data e Hora NativosSuporte nativo a data e hora RFC 3339Análise implícita de string / dataNenhum (somente strings)Nenhum (somente strings)
Suporte a ComentáriosNativo (comentários com #)Nativo (comentários com #)Nenhum comentário permitidoNativo (comentários com ; e #)
Ecossistema PrincipalRust (Cargo), Python (PEP 518), GoKubernetes, Ansible, pipelines de CI/CDAPIs Web, comunicação de navegadorWindows legado, configuração do Git

Modos Comuns de Corrupção e Guia de Recuperação Hex

Erro do analisador: 'Duplicate key in table' ou 'Invalid table header'.

Causa Raiz: Tentativa de redefinir uma chave existente ou namespace de tabela dentro do documento.

Recuperação: Valide e reconfirme a sintaxe TOML usando o Formatador TOML do File2File.

Análise de Segurança e Vetores de Ataque ao Analisador

Os analisadores de TOML devem se proteger contra poluição de protótipo e exaustão de CPU causada por aninhamento patológico de matrizes de tabelas.

Vetores de Ataque Conhecidos

  • Poluição de protótipo em analisadores TOML em JavaScript injetando propriedades em Object.prototype.
  • Negação de serviço por meio de declarações de matrizes de tabelas profundamente aninhadas.
  • Alocação de memória ilimitada durante a análise massiva de matrizes embutidas.

Melhores Práticas Defensivas: Valide os limites de aninhamento de tabelas e use objetos de dicionário seguros contra poluição de protótipo.

Origens Históricas e Marcos

2021Lançamento formal do TOML v1.0.0, congelando a especificação central de sintaxe.
2018Python padroniza o 'pyproject.toml' (PEP 518) como o padrão moderno de configuração de compilação.
2013Tom Preston-Werner publica o TOML para fornecer um formato de configuração limpo sem a complexidade do YAML.

Principais Vantagens e Prós

  • Completamente sem ambiguidades: mapeia de forma limpa e previsível para uma tabela hash sem coerção de tipos surpreendente.
  • Suporte nativo a dados temporais de primeira classe (carimbos de data/hora, datas e horas do RFC 3339) sem escape de strings.
  • Adotado como o formato de configuração padrão oficial para ferramentas de linguagem modernas (Rust Cargo.toml, Python pyproject.toml).

Limitações Técnicas e Contras

  • Árvores de objetos multinível profundamente aninhadas podem se tornar prolixas em comparação com o YAML.
  • A sintaxe para matrizes de tabelas ([[table.array]]) pode não ser intuitiva para iniciantes.
  • Menos compacto que o JSON para troca de dados de API máquina a máquina de alto rendimento.

Curiosidades Técnicas

  • O TOML foi criado por Tom Preston-Werner, que também co-fundou o GitHub e criou o Gravatar e o SemVer (Semantic Versioning).
  • O arquivo 'Cargo.toml' em cada projeto Rust especifica todas as dependências de pacotes e flags do compilador no formato TOML.
  • Ao contrário do JSON, o TOML suporta nativamente comentários (usando o caractere '#') e strings multilinha.

Perguntas Técnicas Frequentes

Para que o TOML é usado?

O TOML é usado para configuração de software, mais notavelmente no Cargo.toml do Rust, pyproject.toml do Python, configurações do Go Hugo e ferramentas de contêiner.

Por que o TOML é preferido ao YAML para configuração?

O TOML evita os notórios bugs de análise de casos extremos do YAML (como um 'NO' sem aspas se transformando no booleano falso), mantendo-se amigável aos humanos com comentários e tabelas claras.

Como posso converter TOML para JSON ou YAML?

Você pode converter arquivos TOML para JSON ou YAML instantaneamente usando o File2File.app diretamente no seu navegador web.