TOML クイックリファレンス
テーブル、文字列、数値、日付、配列
構文
基本ルール
| key = value | キーと値のペア(1 行に 1 つ) |
| # | コメント(行末まで) |
| Case sensitive | キーと値は大文字・小文字を区別 |
| UTF-8 | ファイルは有効な UTF-8 でなければならない |
| No null | TOML に null 型はない |
最小限の例
title = "My App"
debug = true
port = 8080
文字列
文字列の種類
| "basic" | 基本文字列(エスケープをサポート) |
| 'literal' | リテラル文字列(エスケープなし) |
| """multi""" | 複数行の基本文字列 |
| '''multi''' | 複数行のリテラル文字列 |
例
basic = "Hello\nWorld"
literal = 'C:\Users\path'
multi = """
Line one
Line two"""
エスケープシーケンス
| \n \t \r | 改行、タブ、キャリッジリターン |
| \\ | バックスラッシュ |
| \uXXXX | Unicode(4 桁の 16 進数) |
| \UXXXXXXXX | Unicode(8 桁の 16 進数) |
数値とブール値
数値の型
| 42 | 整数 |
| 1_000_000 | アンダースコア区切りの整数 |
| 0xff / 0o77 / 0b11 | 16 進数、8 進数、2 進数 |
| 3.14 | 浮動小数点 |
| 5e+22 / 1e-2 | 指数表記 |
| inf / nan | 特殊な浮動小数点値 |
| true / false | ブール値(小文字のみ) |
例
count = 42
price = 19.99
hex_color = 0xFF5733
enabled = true
日付
日付と時刻の型
| 2026-03-26T10:30:00Z | オフセット日時(UTC) |
| 2026-03-26T10:30:00-05:00 | オフセット日時(EST) |
| 2026-03-26T10:30:00 | ローカル日時(タイムゾーンなし) |
| 2026-03-26 | ローカル日付 |
| 10:30:00 | ローカル時刻 |
例
created = 2026-03-26T10:30:00Z
birthday = 1990-05-15
alarm = 07:00:00
テーブル
テーブル構文
[server]
host = "localhost"
port = 8080
[server.ssl]
enabled = true
cert = "/path/to/cert.pem"
テーブルの配列
[[users]]
name = "Alice"
role = "admin"
[[users]]
name = "Bob"
role = "user"
ルール
| [name] | 標準テーブルヘッダー |
| [a.b.c] | ドット記法 — ネストされたテーブル |
| [[name]] | テーブルの配列 |
| No redefine | 同じテーブルを 2 度定義できない |
配列
配列構文
colors = ["red", "green", "blue"]
numbers = [1, 2, 3]
複数行の配列
hosts = [
"alpha.example.com",
"beta.example.com",
]
TOML 配列では末尾のカンマが許可されています
ルール
| Same type | すべての要素は同じ型でなければならない |
| Trailing comma | 最後の要素の後に使用可能 |
| Newlines | 配列は複数行にまたがれる |
インラインテーブル
インラインテーブル構文
point = { x = 1, y = 2 }
user = { name = "Alice", admin = true }
ルール
| Single line | 1 行で記述しなければならない |
| No trailing comma | 末尾のカンマは不可 |
| No newlines | 複数行にまたがれない |
| No adding keys | 後からインラインテーブルにキーを追加できない |
インライン vs 標準
# Inline — compact, one-liners
db = { host = "localhost", port = 5432 }
# Standard — readable, extendable
[db]
host = "localhost"
port = 5432
よく使うパターン
pyproject.toml
[project]
name = "myapp"
version = "1.0.0"
dependencies = ["flask>=3.0"]
Cargo.toml
[package]
name = "myapp"
version = "0.1.0"
edition = "2021"
ヒント
| taplo | TOML ツールキット — フォーマッターとリンター |
| No null | null をセットする代わりにキーを省略 |
| No anchors | YAML と異なり、参照/エイリアスシステムはない |
| Strict | 重複キーなし、型の混在した配列なし |