Skip to main content

【入門】TOMLとは?特徴、基本構文、JSON/YAMLとの違いをわかりやすく解説!

モダンな開発環境において、プロジェクトの設定ファイルとして見かけることが増えた「TOML」。 Pythonのパッケージ管理(pyproject.toml)や、Rustのビルドツール(Cargo.toml)などで広く採用されています。

「名前は見たことあるけれど、どんな特徴があるの?」「どうやって書けばいいの?」という方に向けて、TOMLの基本から具体的な書き方まで徹底解説します!


TOMLとは?

TOML(トムル)は、「Tom's Obvious, Minimal Language」の略で、GitHubの共同創業者であるTom Preston-Werner氏らによって提案された設定ファイル向けのデータ記述言語です。

その名の通り、**「誰が見ても明らかで(Obvious)、必要最小限(Minimal)」**であることを目的に設計されており、人間がパッと見て理解しやすく、書き間違えにくいのが大きな特徴です。


TOMLの主な特徴

  1. 圧倒的な読みやすさ 人間が日常的に使うテキストに近い形式で記述できるため、プログラマーだけでなく、非エンジニアが見ても設定内容を直感的に理解できます。
  2. 仕様が明確でパースしやすい 曖昧なルールが排除されているため、プログラム側での読み込み(パース)が容易です。多くのプログラミング言語でTOMLを扱うためのライブラリが用意されています。
  3. エラーが起きにくい構造 インデント(字下げ)の数によって構造が変わるような言語と違い、視覚的なミスによる構文エラーが発生しにくくなっています。

他のフォーマット(JSON、YAML)との違い

設定ファイルによく使われる他のフォーマットと、TOMLの違いをまとめました。

フォーマット特徴メリットデメリット
TOML鍵と値のペア、およびセクションで管理視覚的に最もシンプルで、手書きや修正が容易複雑にネスト(階層化)されたデータには不向き
JSON括弧 { }[ ] を多用するプログラム間のデータ連携に最強、標準化されているコメントが書けない、括弧の閉じ忘れが起きやすい
YAMLインデント(スペース)で階層を表現階層構造が綺麗に見える、コメントも書けるスペースが1個ズレるだけでエラーになり、見つけにくい

TOMLは**「人間が手で書き換える設定ファイル」として、もっともバランスが良い**フォーマットと言えます。


TOMLの基本的な書き方(基本構文)

TOMLファイルの拡張子は .toml です。ファイル全体は UTF-8 でエンコードされている必要があります。

1. 基本は「キー = 値」

最もシンプルな形は、キー(名前)と値を = で結ぶ書き方です。

# これはコメントです(# を使います)
title = "マイプロジェクト"
version = "1.0.0"
enabled = true

2. セクション(テーブル)でグループ化する

設定項目をグループ分けしたいときは、角括弧 [ ] を使ってテーブルを定義します。

[database]
server = "192.168.1.1"
ports = [ 8000, 8001 ]
connection_max = 500

[owner]
name = "開発太郎"
organization = "秘密組織"

3. 主要なデータ型

TOMLでは、主に以下のデータ型をサポートしています。

  • 文字列 (String): ダブルクォーテーション "" で囲みます。
  • 整数 (Integer) / 浮動小数点数 (Float): 423.14 のようにそのまま書きます。
  • 真偽値 (Boolean): true または false(小文字のみ)。
  • 配列 (Array): 括弧 [ ] で囲み、カンマで区切ります(改行も可能)。
  • 日時 (Date-time): ISO 8601 形式に準拠した日時を直接書くことができます(例: 2026-05-06T01:46:25Z)。

応用的な使い方

1. 2次元配列(テーブルの配列)

同じ構造のデータを複数並べたい場合は、二重の角括弧 [[ ]] を使用します。

[[products]]
name = "ハンマー"
sku = 738594937

[[products]]
name = "釘"
sku = 859348594

2. インラインテーブル

短いグループであれば、1行にまとめて書くことも可能です。

name = { first = "Tom", last = "Preston-Werner" }

まとめ:TOMLはどんな時につかうべき?

TOMLは、以下のようなケースで最高のパフォーマンスを発揮します。

  • アプリケーションの初期設定ファイル
  • ユーザーが直接書き換える可能性のある環境設定
  • プロジェクトの依存関係管理(各種パッケージマネージャーの設定など)

一方で、Web APIの通信データなど、プログラム間で大量の複雑なデータをやり取りする場合はJSONの方が適しています。

「手軽に読めて、安全に書き換えられる設定ファイルを作りたい!」と思ったら、ぜひTOMLの採用を検討してみてください。