ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
TOML(トムル、Tom's Obvious Minimal Language)は、GitHub 共同創業者の Tom Preston-Werner(マスコットの mascot Mojombo)が 2013 年に発表した、設定ファイル向けのデータシリアライゼーション形式です。「明確(obvious)で最小限(minimal)」を哲学に掲げ、INI ファイルの読みやすさを残しつつ、JSON のような厳密な型システムを備えています。
拡張子は .toml、MIME タイプは application/toml。最新仕様は v1.0.0(2021 年 1 月)。Rust のパッケージマネージャ Cargo(Cargo.toml)、Python の標準ビルド設定(pyproject.toml、PEP 518 / PEP 621)、Hugo(hugo.toml)、Poetry、Black、Ruff など、近年の開発者向けツールチェーンで強い存在感を発揮しています。Python 3.11 からは標準ライブラリに tomllib が追加されました。
構文・データモデル
キー = 値の行と、[section] のテーブル見出しで構造化します。値の型は string / integer / float / boolean / datetime / array / inline table と豊富です。
# これはコメント
title = "TOML サンプル"
[owner]
name = "Alice"
dob = 1990-05-27T07:32:00Z # 日時型ネイティブ対応
[database]
enabled = true
ports = [8000, 8001, 8002]
data = [["delta", "phi"], [3.14]]
temp_targets = { cpu = 79.5, case = 72.0 } # インラインテーブル
[[servers]] # 配列テーブル
name = "alpha"
ip = "10.0.0.1"
[[servers]]
name = "beta"
ip = "10.0.0.2"
Cargo.toml の実例(最も目にする TOML):
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
主な用途
- Rust エコシステム:
Cargo.toml(パッケージ定義)、rustfmt.toml、rust-toolchain.toml - Python エコシステム:
pyproject.toml(PEP 518 / 621、ビルド・依存・メタデータの一元化)、Poetry・Black・Ruff・mypy などほぼ全ツールが採用 - 静的サイトジェネレータ: Hugo(
hugo.toml、config.toml)の標準設定 - クラウド・CLI ツール: Netlify、Fly.io(
fly.toml)、Cargo Lambda など - アプリケーション設定: 階層が深すぎず、人間が手で書く設定ファイル全般
関連形式との比較
| 項目 | TOML | YAML | JSON | INI |
|---|---|---|---|---|
| 仕様の厳密さ | 非常に厳密 | 緩い(暗黙変換) | 厳密 | 仕様統一なし |
| コメント | 可(#) | 可(#) | 不可 | 可(; or #) |
| 日時型 | ネイティブ対応 | あり | なし(文字列) | なし |
| ネスト | テーブル+ドット | インデント | 波カッコ | 基本フラット |
| 可読性 | 高(フラット気味) | 非常に高い | 中 | 高(ただし機能不足) |
| 主用途 | Rust・Python 設定 | K8s・CI | API・データ交換 | レガシー設定 |
編集・パーサ・ツール
- Python: 標準ライブラリ
tomllib(3.11+、読み取り専用)、書き込みにはtomli-w/tomlkit - Rust:
tomlクレート(serde 連携) - Go:
BurntSushi/tomlが定番 - JavaScript / Node.js:
@iarna/toml、smol-toml - PHP:
yosymfony/toml - VS Code: Even Better TOML 拡張がシンタックスハイライト・スキーマ対応を提供
- taplo: TOML 用フォーマッタ・Linter・LSP サーバ
注意点・落とし穴
- 文字列は必ずクォート: YAML や INI と違って裸の文字列は書けない。
name = Aliceはエラー - キー重複は不可: 同じテーブル内で同じキーを定義すると仕様違反
- テーブル定義の順序:
[a.b]と[a]の両方を書くとき、後から親[a]を定義するとサブテーブルが上書きされて壊れる - 深いネストは苦手: 3 階層を超えるとドット記法が長くなり可読性が落ちる。深い構造には YAML・JSON が向く
- バージョン差異: v0.5 と v1.0 で挙動が違うパーサがある。
tomllibは v1.0 準拠 - 日時型のタイムゾーン: RFC 3339 形式必須。
Zや+09:00を省略するとローカル日時扱いで曖昧になる
関連リンク
- Web・データ・設定
- ファイル拡張子とは
- JSON(.json)
- YAML(.yaml / .yml)
- XML(.xml)
- env(.env)
- INI(.ini)
- properties(.properties)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?