TOMLハンドブック

編集

TOMLとは

編集

TOMLは「Tom's Obvious, Minimal Language」の略で、設定ファイルのために設計されたシンプルなマークアップ言語です。人間が読み書きしやすく、プログラムでもパースが容易な形式を目指しています。

基本構文

編集

キーと値の基本

編集
  • キーと値はイコール(=)で区切ります
title = "TOML Example"

データ型

編集

文字列

編集
  • 基本文字列:ダブルクォートで囲みます
str = "Hello, World"
  • 複数行文字列:三重のダブルクォートで囲みます
multiline = """
一行目
二行目
三行目"""

数値

編集
  • 整数
int1 = 42
int2 = +17
int3 = -17
int4 = 1_000_000  # アンダースコアで桁区切り可能
  • 浮動小数点数
float1 = 3.14
float2 = -0.01
float3 = 6.626e-34

真偽値

編集
bool1 = true
bool2 = false

日付と時刻

編集
  • RFC 3339形式をサポート
date1 = 1979-05-27
time1 = 07:32:00Z
datetime1 = 1979-05-27T07:32:00Z

配列

編集
  • 角括弧で要素を囲みます
array1 = [ 1, 2, 3 ]
array2 = [ "red", "yellow", "green" ]
numbers = [
  1, 2, 3
]

テーブル(オブジェクト)

編集
  • 角括弧でテーブル名を囲みます
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]

[servers]
  [servers.alpha]
  ip = "10.0.0.1"
  role = "frontend"
  
  [servers.beta]
  ip = "10.0.0.2"
  role = "backend"

ベストプラクティス

編集

命名規則

編集
  • キー名は小文字のスネークケースを推奨
  • テーブル名は意味のある階層構造を反映

ファイル構成

編集
  • 設定は論理的なグループごとにテーブルで分類
  • 関連する設定は同じテーブル内でまとめる
  • コメントで各セクションの説明を付ける

コメント

編集
  • シャープ記号(#)でコメントを記述
  • 重要な設定項目には説明コメントを付ける
# データベース接続設定
[database]
host = "localhost"  # データベースのホスト名
port = 5432        # PostgreSQLのデフォルトポート

よくある間違い

編集
  • キーの重複定義
  • テーブル名の重複
  • 文字列のクォート忘れ
  • 配列の要素の型の混在

実装例

編集

アプリケーション設定

編集
# アプリケーション基本設定
[app]
name = "MyApp"
version = "1.0.0"
debug = false

# データベース設定
[database]
host = "localhost"
port = 5432
name = "myapp_db"
user = "admin"

# ログ設定
[logging]
level = "info"
path = "/var/log/myapp"
max_size = 100  # MB
backup_count = 5

参考資料

編集