- JvYaml, v=0.2.1: the project is dead. No issue is fixed. The developer is now maintaining another project - JvYAMLb
- JvYAMLb is a YAML processing library for Java, used by JRuby, v=0.2.5. I did not even evaluate the project because of a few dependencies on JRuby.
- JYaml, v=1.3: last release is more then 2 year old. Many open bugs. I do not know whether it is maintained. Google puts this library to the top. Does it mean that it is the most wide spread ?
- YamlBeans, v=0.93: since the parser and emitter are based on the JvYaml implementation it does not cover the whole 1.1 specification.
Implicit types are not supported (http://yaml.org/type/index.html)
Implementation does not follow the recommended way (http://yaml.org/spec/1.1/#id859333)
The document must be a JavaBean. Empty constructor is required. Immutable objects are not supported.
- SnakeYAML, v=1.5. Unique features:
- strong commitment to cross-language compatibility (as less global tags as possible)
- comprehensive documentation
- Maven 2 artifacts (including sources.jar and javadoc.jar)
- complete support for recursive objects (they can be parsed and emitted)
- 98% test coverage
- support for immutable instances
- collections in JavaBeans do not require global tags (other libraries need to configure additional runtime information which is required because of erasure)
- readable error reporting (with line numbers)
In fact I am not aware of any feature which is present in any library but not implemented in SnakeYAML. Nevertheless Google puts JYaml much higher then SnakeYAML and YamlBeans has much more downloads then SnakeYAML.
What is missing in SnakeYAML ? Why developers prefer to use another library ? What can be improved in SnakeYAML ?