YAML1.2の仕様がある割には対応していないなーと思ったので対応状況を調べてみた。
YAMLのバージョンに関して
YAMLの最新バージョンは1.2、2009年の10月1日にリリースされている
Rubyの標準に関して
公式サイトに言語ごとの状況が書いてある
Rubyで扱われる標準のYAMLのライブラリは psych
。
psych
はどのYAMLバージョンに対応しているかというと…
yaml のバックエンドライブラリです。libyaml ベースで作成されてお り、YAML バージョン 1.1 を扱う事ができます。
1.1となっている。
※ちなみにRuby1.9.3から変わっていない。
他言語の1.2の対応状況
公式サイトでバージョン明示されているのは以下の言語のライブラリたち。
Projects: C/C++ Libraries: - yaml-cpp # C++ YAML 1.2 implementation Python: - ruamel.yaml # YAML 1.2, update of PyYAML with round-tripping of comments Java: - Camel # YAML 1.2 for Java. A user-friendly OOP library. Haskell: - HsYAML # YAML 1.2 implementation in pure Haskell - YamlReference # Haskell 1.2 reference parser Rust: - yaml-rust # YAML 1.2 implementation in pure Rust Nim: - NimYAML # YAML 1.2 implementation in pure Nim
だいたい標準的なものは1.1で止まっており、案外にみんな1.2対応していない。