Syntaxe
Règles de base
key = valuePaire clé-valeur (une par ligne)
#Commentaire (jusqu'à la fin de la ligne)
Case sensitiveLes clés et valeurs sont sensibles à la casse
UTF-8Les fichiers doivent être en UTF-8 valide
No nullTOML n'a pas de type null
Exemple minimal
title = "My App" debug = true port = 8080
Chaînes
Types de chaînes
"basic"Chaîne de base (supporte les séquences d'échappement)
'literal'Chaîne littérale (sans échappement)
"""multi"""Chaîne de base multi-ligne
'''multi'''Chaîne littérale multi-ligne
Exemples
basic = "Hello\nWorld" literal = 'C:\Users\path' multi = """ Line one Line two"""
Séquences d'échappement
\n \t \rSaut de ligne, tabulation, retour chariot
\\Barre oblique inverse
\uXXXXUnicode (hexadécimal 4 chiffres)
\UXXXXXXXXUnicode (hexadécimal 8 chiffres)
Nombres et booléens
Types numériques
42Entier
1_000_000Entier avec séparateurs de milliers
0xff / 0o77 / 0b11Hexadécimal, octal, binaire
3.14Flottant
5e+22 / 1e-2Notation scientifique
inf / nanValeurs flottantes spéciales
true / falseBooléen (minuscules uniquement)
Exemples
count = 42 price = 19.99 hex_color = 0xFF5733 enabled = true
Dates
Types date et heure
2026-03-26T10:30:00ZDate-heure avec décalage (UTC)
2026-03-26T10:30:00-05:00Date-heure avec décalage (EST)
2026-03-26T10:30:00Date-heure locale (sans fuseau horaire)
2026-03-26Date locale
10:30:00Heure locale
Exemples
created = 2026-03-26T10:30:00Z birthday = 1990-05-15 alarm = 07:00:00
Tables
Syntaxe des tables
[server] host = "localhost" port = 8080 [server.ssl] enabled = true cert = "/path/to/cert.pem"
Tableau de tables
[[users]] name = "Alice" role = "admin" [[users]] name = "Bob" role = "user"
Règles
[name]En-tête de table standard
[a.b.c]Clé pointée — table imbriquée
[[name]]Tableau de tables
No redefineImpossible de définir la même table deux fois
Tableaux
Syntaxe des tableaux
colors = ["red", "green", "blue"] numbers = [1, 2, 3]
Tableau multi-ligne
hosts = [ "alpha.example.com", "beta.example.com", ]

La virgule finale est autorisée dans les tableaux TOML

Règles
Same typeTous les éléments doivent être du même type
Trailing commaAutorisée après le dernier élément
NewlinesLes tableaux peuvent s'étendre sur plusieurs lignes
Tables en ligne
Syntaxe des tables en ligne
point = { x = 1, y = 2 } user = { name = "Alice", admin = true }
Règles
Single lineDoit tenir sur une seule ligne
No trailing commaVirgule finale non autorisée
No newlinesNe peut pas s'étendre sur plusieurs lignes
No adding keysImpossible d'ajouter des clés à une table en ligne ultérieurement
En ligne vs standard
# Inline — compact, one-liners db = { host = "localhost", port = 5432 } # Standard — readable, extendable [db] host = "localhost" port = 5432
Modèles courants
pyproject.toml
[project] name = "myapp" version = "1.0.0" dependencies = ["flask>=3.0"]
Cargo.toml
[package] name = "myapp" version = "0.1.0" edition = "2021"
Conseils
taploBoîte à outils TOML — formateur et linter
No nullOmettre la clé plutôt que de la mettre à null
No anchorsContrairement à YAML, pas de système de références/alias
StrictPas de clés dupliquées, pas de tableaux à types mixtes