読み方 : トムル
TOML【Tom's Obvious, Minimal Language】
概要

GitHub社の共同創業者の一人であるトム・プレストン=ワーナー(Tom Preston-Werner)氏が2013年に仕様を公開した。JSONやYAMLと同様に設定値を構造化して記述するための形式だが、YAMLのインデントによる階層表現の複雑さや、JSONのコメント非対応といった問題を回避するよう設計されている。
基本はキーと値を「key = value」の形式で記述し、文字列、整数、浮動小数点数、真偽値、日時などのデータ型を扱える。値は引用符で囲むことで文字列として表現され、数値や真偽値(true/false)はそのまま記述する。日付や時刻はISO 8601形式で記述する。コメントは「#」で始まる行として記述でき、設定内容の補足説明を付加できる。
構造化されたデータは「テーブル」と呼ばれる単位で表現される。[テーブル名] のように角括弧で囲んだ名前で定義され、その下に属するキーと値をまとめて記述する。テーブルの項目の一つとしてテーブルを組み込んだ入れ子構造を定義することもできる。配列も定義することができ、[1, 2, 3] のように角括弧内に複数の値をカンマ区切りで記述する。
TOMLはJSONやYAMLと同様に設定ファイル形式として利用されるが、明確な型定義と一貫した構文により解釈の曖昧さを抑えている。Rustのパッケージ管理ツールである「Cargo」の設定ファイルなどで採用されており、プログラムの設定やメタデータの記述に用いられる。テキスト形式であるためバージョン管理との相性もよく、変更履歴の追跡やレビューが行いやすい。