RÉFÉRENCE RAPIDE TOML
Tables, chaînes, nombres, dates, tableaux
Syntaxe
Règles de base
| key = value | Paire clé-valeur (une par ligne) |
| # | Commentaire (jusqu'à la fin de la ligne) |
| Case sensitive | Les clés et valeurs sont sensibles à la casse |
| UTF-8 | Les fichiers doivent être en UTF-8 valide |
| No null | TOML 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 \r | Saut de ligne, tabulation, retour chariot |
| \\ | Barre oblique inverse |
| \uXXXX | Unicode (hexadécimal 4 chiffres) |
| \UXXXXXXXX | Unicode (hexadécimal 8 chiffres) |
Nombres et booléens
Types numériques
| 42 | Entier |
| 1_000_000 | Entier avec séparateurs de milliers |
| 0xff / 0o77 / 0b11 | Hexadécimal, octal, binaire |
| 3.14 | Flottant |
| 5e+22 / 1e-2 | Notation scientifique |
| inf / nan | Valeurs flottantes spéciales |
| true / false | Booléen (minuscules uniquement) |
Exemples
count = 42
price = 19.99
hex_color = 0xFF5733
enabled = true
Dates
Types date et heure
| 2026-03-26T10:30:00Z | Date-heure avec décalage (UTC) |
| 2026-03-26T10:30:00-05:00 | Date-heure avec décalage (EST) |
| 2026-03-26T10:30:00 | Date-heure locale (sans fuseau horaire) |
| 2026-03-26 | Date locale |
| 10:30:00 | Heure 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 redefine | Impossible 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 type | Tous les éléments doivent être du même type |
| Trailing comma | Autorisée après le dernier élément |
| Newlines | Les 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 line | Doit tenir sur une seule ligne |
| No trailing comma | Virgule finale non autorisée |
| No newlines | Ne peut pas s'étendre sur plusieurs lignes |
| No adding keys | Impossible 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
| taplo | Boîte à outils TOML — formateur et linter |
| No null | Omettre la clé plutôt que de la mettre à null |
| No anchors | Contrairement à YAML, pas de système de références/alias |
| Strict | Pas de clés dupliquées, pas de tableaux à types mixtes |