検討事項
- 表現力がどれくらいあるか(型、デフォルト、オプショナル)
- 設定を書きやすいか(コメントなど)
- 仕様を記述できるか(スキーマを記述する方法があるか)
- スキーマの検証ができるか
pficommon JSONで実装。スキーマはstructで記述できる。可読なスキーマをjson schemeで記述。
- 型、オプショナルは表現できる
- 設定は人間可読
- structでスキーマを簡単に表現できる
- JSON schemeでフォーマルに書くこともできる
- json_castで検証と変換が同時に出来る
- デフォルト値を表現しづらい
- コメントを書けない
- json scheme自体は読みづらい、一般化してない?
msgpack objectで実装。可読なスキーマがidlで記述できる。
- 型、オプショナル、デフォルトは表現できる
- msgpack-idlでスキーマを簡単に表現できる
- mpidlで検証と変換がある程度できる
- 設定を記述する方法がない
- オブジェクトの表現がtupleになってしまう
- mpidlでの検証は実装が部分的
std::mapで実装。表現力不足は文字列表現で補う。
- 依存ライブラリはない
- 設定記述はJSONなどを経由
- 型、デフォルト値など、表現力は無い
- スキーマの記述、仕様の記述ができない
libyamlなどで実装。
- 型を記述できる、表現力はJSONと同じくらい
- コメントを書ける
- ライブラリを利用できる
- schemeを記述できない?
- 自動検証ができない?