mojavy.com http://mojavy.com/blog Fri, 26 Apr 2013 20:21:11 GMT Blogofile hourly 1 TOMLノススメ http://mojavy.com/blog/2013/04/26/toml/ Fri, 26 Apr 2013 20:21:11 JST <![CDATA[tips]]> <![CDATA[toml]]> http://mojavy.com/blog/2013/04/26/toml/ TOMLノススメ <![CDATA[

github

TOMLとは

https://github.com/mojombo/toml

Tom's Obvious, Minimal Language (TOML) とはgithubの中の人が提案している設定ファイルのためのミニ言語で、以下のような特徴があります。

  • 人間が読み書きしやすい
  • 標準的なデータ型が利用できる
  • 曖昧さが発生する余地が極力排除されている
  • パーサをかくのが簡単

なぜTOML?

例えば、YAMLを設定ファイルに使っているシステムは多いですが、YAMLの仕様書は80ページもあり正しく使うのは意外と大変です。1

またJSONはカッコやダブルクオートの割合が多すぎますし、コメントも使えません。2

TOMLをつかえばそのようなストレスはありません。

TOMLの使い方

TOMLの書き方は本家のドキュメント をみてもらえばすぐわかると思います。

TOMLのライブラリは各種言語に対応したものが既にたくさんあります。 言語によっては複数の実装が存在するものもありますが、とりあえずはgithub上でのstarの数が一番多いものから試すといいと思います。

わざわざ説明するほどの内容でもないですが、ここでは一応rubyでの使い方を紹介します。 gem install tomlでインストールして、以下のようにするだけです。YAMLの場合と大体同じですね。

require 'toml'

TOML.load("thing = 9")
# => {"thing" => 9}

TOML.load_file("my_file.toml")
# => {"whatever" => "keys"}

その他

  • TOMLでは日付型も定義されていて、それもUTC固定というのが地味にいいです
  • githubのコードハイライトは既にTOMLに対応してます
  • emacsユーザはtoml-modeというのがmelpaに登録されているので、M-x list-packagesからインストールできます。

まとめ

TOMLという設定ファイルのための新しいフォーマットを紹介しました。 設定ファイルにYAMLやJSONつかってるひとはTOMLに移行すると幸せになれるかもしれません。


  1. 仕様を正確に実装したYAMLパーサはほとんど存在しないとかいう話もちらほら 

  2. https://github.com/mojombo/toml/issues/2  

]]>