ARTICLES

TOML とか、設定ファイルあれこれ

2019-05-11

Rust に取り組み出してから TOML というフォーマットにも触るようになりました。
この TOML ですが Tom's Obvious, Minimal Language の略ということで Tom Preston-Werner 氏により作られたものであるとのこと。
Tom Preston-Werner 氏は、GitHub の共同創業者であるそうで、おお、そこに繋がっていたのかと今までなんとなく TOML というのがあるというくらいにしか認識していなかったのですが、こうして由来を調べていくといろいろと背景がわかってきて、楽しいですね。

ここでエントリを終わりにするのはあまりに短すぎるので、今まで自分に馴染みがあった設定ファイル形式をつらつら書いてみます。

XML

これは改めて書く必要はありませんが、XML は、設定ファイルとしても昔はよく使われていました。近年は JSON に取って代わられている印象です。僕はもともと Flash 使いでしたから、XML のパースにずいぶん悩まされました。なので、XML は今でもあまり好きではありません。

JSON

こういう設定ファイル系で今まで一番使ってきたのが .json という拡張子でおなじみの JSON 。
これは JavaScript Object Notation の略ですよね。超有名。

YAML

その他で使っているものとしては、.yaml 拡張子の YAML。これも超有名です。 YAML Ain't a Markup Language の略。

EDN

ちょっとマイナーどころだと、Clojure 使いに有名な .edn 拡張子の EDN (extensible data notation) です。
一般的にはあまり有名ではありませんが、Clojure 界隈では非常によく見られるフォーマットです。edn のスーパーセットが Clojure のリテラル表記となるため、非常に Clojure 使いとは馴染みやすいのです。

HOCON

Scala 界隈で有名なのは、HOCON というフォーマットです。Play framework にて採用されていることもあり、僕には馴染みがあります。

HOCON は Human-Optimized Config Object Notation の略です。
Human-Optimized とついているように、人間が編集できる設定ファイルであることを意識して作られています。
JSON のスーパーセットなので、JSON に馴染みがあれば、容易に編集できるでしょう。

Ion

もっと知られていないものとして、Ion というのがあります。
Amazon により仕様が決められています。サイトはこちら。Java, C, Python, JavaScript のライブラリが用意されています。JSON のスーパーセットで、拡張子は .ion です。

いずれにしても、設定ファイルは、ヒューマンリーダブルであることが求められるので、いずれのフォーマットでもちょっとサンプルを読めば設定内容が把握しやすいですよね。


ARTICLES


    AUTHOR

    原 一浩 の顔写真

    (はら) 一浩(かずひろ)

    カンソクインダストリーズ代表 / グレーティブ合同会社代表

    1998年に独立し、同年、ウェブデザイン専門のメールメディア DesignWedgeの発行を開始。Webデザイン業の傍ら、海外のWebデザインに関する情報発信を行う。
    雑誌への寄稿多数。主な著書に『はじめてのフロントエンド開発』『プロセスオブウェブデザイン』、『Play framework徹底入門』、『ウェブデザインコーディネートカタログ』など。自社製のWebデザインのクロール&キャプチャシステムvaqumをベースに、様々なリサーチを行っている。Web 検定プロジェクトメンバー

    著作一覧はこちら