YAML ↔ TOML コンバーター 🔒 データがブラウザの外に出ることはありません。
設定ファイルをYAMLとTOML間で変換。
Ctrl+Sダウンロード
このツールについて
YAMLとTOMLはどちらも構造化された設定を表現しますが、構文と主な用途が異なります。YAMLはKubernetesマニフェスト、Docker Composeファイル、CIパイプライン(GitHub Actions、GitLab CI)で主流。TOMLはRustのCargo.tomlやPythonのpyproject.tomlで好まれる形式です。Composeサービスの設定をCargoプロジェクトへ移す(あるいはその逆)作業は、たいてい手作業での書き写しになります。このオンライン YAML → TOML コンバーター(逆方向の TOML → YAML も含む)は双方向に即座に変換し、ネストしたテーブル・配列・データ型をそのまま保ちます。
js-yamlとsmol-tomlを使用し、どちらもこのページでのみ読み込まれます。設定ファイルがブラウザの外に出ることはありません。内部ホスト名やポート、環境名を含むファイルでも安全です。
よくある質問
YAMLとTOMLはそれぞれ何に使われますか?
YAMLはKubernetesマニフェスト、Docker Composeファイル、CIパイプライン(GitHub Actions、GitLab CI)の標準形式で、深いネストをうまく扱えます。TOMLはRustのCargo.tomlやPythonのpyproject.tomlが使う形式で、.iniファイルに近い見た目を持ち、フラットで手編集しやすい設定が重視される場面で好まれます。コンテナベースのプロジェクトの設定をRustやPythonのプロジェクトに移す(あるいはその逆)際に、両者間の変換が必要になることがよくあります。
YAMLとTOMLの間で変換しても、コメントは残りますか?
いいえ——これはよくある落とし穴です。YAMLもTOMLも、パーサーがドキュメントを読み込む際にコメントを破棄し、残るのはデータだけです。このツールは入力をメモリ上のオブジェクトとして解析し、ゼロから再シリアライズするため、どちらの形式の`#`コメントも出力からは失われます。重要な情報を記したコメントがある場合は、変換後に手動でコピーしてください。
array-of-tables 構文([[section]])は正しく相互変換できますか?
はい。TOMLの`[[section]]`は、要素がたまたまテーブル(オブジェクト)である配列にすぎません。TOML → YAML に変換すると、通常のYAMLのマッピングのシーケンスになります。そのシーケンスをTOMLに戻すと、`[[section]]`ブロックが再現されます。smol-tomlが「全要素が単純オブジェクトである配列」を認識し、自動的にarray-of-tables構文で出力するためです。
入力したYAMLやTOMLのデータはどこかにアップロードされますか?
いいえ。変換はすべてブラウザ内でjs-yamlとsmol-tomlというJavaScriptライブラリを使って行われ、入力・貼り付けた内容がサーバーに送信されることは一切ありません。そのため、内部ホスト名や認証情報のプレースホルダー、その他環境固有の情報を含む設定ファイルでも安全に使用できます。
docker-compose.yml の設定をRustやPythonプロジェクト向けのTOML設定にするにはどうすればいいですか?
「YAML → TOML」タブに切り替え、docker-compose.ymlの該当部分(例えば1つのサービスの`environment:`ブロックや、独自に追加した設定ブロック)を貼り付ければ、対応するTOMLが右側に即座に表示されます。そのままCargo.toml、pyproject.toml、あるいはアプリが読み込む任意のカスタム`.toml`設定ファイルに貼り付けられます。貼り付けたドキュメント全体は最上位で1つのオブジェクトになっている必要がある点に注意してください。`services:`から始まるcomposeファイル全体を貼り付ける分には、それがマッピングなので問題ありませんが、単なるリスト(`ports:`配列だけなど)を貼り付けるとエラーになります。TOMLには配列をルートドキュメントとして表現する方法がないためです。
YAML から TOML だけでなく、TOML を YAML に戻すこともできますか?
「TOML → YAML」タブをクリックする(または YAML → TOML 変換後に「入れ替え」を押す)と、TOML を貼り付けて対応する YAML を得られ、選択したインデント幅が出力に適用されます。どちらの方向も同じ「解析してから再シリアライズする」方式を使うため、ネストしたテーブル、配列、array-of-tables もどちらの方向でも正しく変換されます。