Convertisseur YAML ↔ TOML 🔒 Vos données ne quittent jamais votre navigateur.

Convertissez des fichiers de configuration entre YAML et TOML.

Ctrl+STélécharger

À propos de cet outil

YAML et TOML décrivent tous deux une configuration structurée, avec une syntaxe et des usages différents. YAML domine les manifestes Kubernetes, les fichiers Docker Compose et les pipelines CI (GitHub Actions, GitLab CI) ; TOML est le format de prédilection du Cargo.toml de Rust et du pyproject.toml de Python. Porter des réglages d'un service Compose vers un projet Cargo — ou l'inverse — signifie généralement tout retaper à la main. Ce convertisseur YAML vers TOML en ligne (et TOML vers YAML, dans l'autre sens) traduit dans les deux sens instantanément, en conservant tables imbriquées, tableaux et types de données.

Propulsé par js-yaml et smol-toml, chargés uniquement sur cette page. Vos fichiers de configuration ne quittent jamais le navigateur — sûr même pour des fichiers mentionnant des noms d'hôtes internes, des ports ou des noms d'environnement.

Questions fréquentes

À quoi sert YAML, et à quoi sert TOML ?

YAML est le format par défaut des manifestes Kubernetes, des fichiers Docker Compose et des pipelines CI (GitHub Actions, GitLab CI) — il gère bien l'imbrication profonde. TOML est le format qu'utilisent le Cargo.toml de Rust et le pyproject.toml de Python — il se lit plutôt comme un fichier .ini et est apprécié là où une configuration plate et éditable à la main compte. Il faut souvent convertir entre les deux en portant des réglages d'un projet à base de conteneurs vers un projet Rust ou Python, ou inversement.

Mes commentaires survivent-ils à la conversion entre YAML et TOML ?

Non — et c'est un piège classique. YAML et TOML abandonnent tous deux les commentaires à la lecture du document ; seules les données survivent. Cet outil analyse votre entrée en un objet en mémoire puis le resérialise à partir de zéro, donc tout commentaire `#` dans l'un ou l'autre format disparaît de la sortie. Si un commentaire documente quelque chose d'important, recopiez-le à la main ensuite.

La syntaxe des tableaux de tables ([[section]]) est-elle correctement convertie dans les deux sens ?

Oui. Le `[[section]]` de TOML n'est qu'un tableau dont les éléments sont des tables (objets). En convertissant TOML → YAML, cela devient une séquence YAML ordinaire de mappings ; reconvertir cette séquence en TOML reproduit les blocs `[[section]]`, car smol-toml reconnaît « un tableau dont chaque élément est un objet simple » et génère automatiquement la syntaxe de tableau de tables.

Mes données YAML ou TOML sont-elles envoyées quelque part ?

Non. La conversion s'exécute entièrement dans votre navigateur grâce aux bibliothèques JavaScript js-yaml et smol-toml — rien de ce que vous tapez ou collez ici n'est jamais envoyé à un serveur. Cela rend l'outil sûr même pour des fichiers de configuration mentionnant des noms d'hôtes internes, des espaces réservés d'identifiants ou d'autres détails propres à un environnement.

Comment transformer les réglages de mon docker-compose.yml en configuration TOML pour un projet Rust ou Python ?

Passez à l'onglet « YAML → TOML », collez la section pertinente de votre docker-compose.yml (par exemple juste le bloc `environment:` d'un service, ou un bloc de réglages personnalisé que vous avez ajouté), et le TOML équivalent apparaît instantanément à droite — prêt à coller dans Cargo.toml, pyproject.toml, ou tout fichier `.toml` personnalisé que lit votre application. Notez que tout le document collé doit se résoudre en un seul objet au niveau racine ; si vous collez le fichier compose entier en commençant par `services:`, c'est correct puisque c'est un mapping, mais une simple liste (comme seulement le tableau `ports:`) affichera une erreur, car TOML ne peut pas représenter un tableau comme document racine.

Puis-je reconvertir du TOML en YAML, pas seulement du YAML en TOML ?

Oui — c'est un convertisseur bidirectionnel. Cliquez sur l'onglet « TOML → YAML » (ou sur Échanger après une conversion YAML → TOML) pour coller du TOML et obtenir le YAML équivalent, avec la largeur d'indentation choisie appliquée à la sortie. Les deux sens utilisent la même approche « analyser puis resérialiser », donc les tables imbriquées, les tableaux et les array-of-tables se convertissent correctement dans les deux sens.