忙しい人のまとめ
今はまだ使わない方がいいかも。
ライセンス等比較
# | 名前 | 作者 | Mavenで依存性解決して使える(野良repo) | Maven Centralに上がってる | ライセンス |
---|---|---|---|---|---|
1 | jtoml | @agrison | ○ | × | MIT |
2 | jtoml | @asafh | × | × | Apache2 |
3 | toml4j | @johnlcox | × | × | Apache2 |
4 | toml4j | @mwanji | ○ | ○ | MIT |
同じ名前のが2つずつあってカオス。
この時点で4しか使う気になれんけど、一応全部試してみる。
やること
TOML公式のTOMLのサンプルをファイルに保存して、それをパースして値を取ったりしてみる。
https://github.com/toml-lang/toml#example
検証コードはGroovy Scriptで実施。
各ライブラリ共通点
- TOMLを読み込んでgetStringやらgetDateやらで値を取り出す
@Grab('com.moandjiezana.toml:toml4j:0.3.1')
import com.moandjiezana.toml.Toml
Toml toml = new Toml().parse(new File("sample.toml"))
println toml.getString("servers.beta.ip")
- Datetimeがうまく処理出来ない。公式サイトの説明では、RFC 3339形式となっているが、
1979-05-27T00:32:00.999999-07:00
はどのライブラリでもパースエラーになった。せめて公式サイトに載ってる例くらいは処理出来て欲しい
気になったところ
toml4j(by mwanji)
最初の比較表でも分かるとおり、Maven Centralに上がっている。これにコントリビュートするのが一番楽そう。
jtoml(by agrison)
唯一シリアライズが出来るのが特徴。しかし、それを実行するとエラーになる。。
その他
Datetime含んでいるだけでエラーになってつらい。
@Grab('com.leacox:toml4j:1.0.0-SNAPSHOT')
import com.leacox.toml4j.Toml
println Toml.from('dob=1979-05-27T07:32:00-08:00').getAsString('dob')
// exception occurred!