The art of simplicity is a puzzle of complexity.


YAML is a data serialization format designed for human readability and interaction with scripting languages.

SnakeYAML Engine is a YAML 1.2 processor for the Java Virtual Machine version 8 and higher.


  • The Engine will parse/emit basic Java structures (String, List<Integer>, Map<String, Boolean>). JavaBeans or any other custom instances are explicitly out of scope.
  • Since the custom instances are not supported, parsing any YAML document is safe - the YAML input stream is not able to instruct the Engine to call arbitrary Java constructors (unless it is explicitly enabled)
  • The API is stable but might change. Feel free to review the code and propose features/changes.

SnakeYAML Engine features

  • a complete YAML 1.2 processor. In particular, SnakeYAML can parse all examples from the specification.
  • Integrated tests from YAML Test Suite - Comprehensive Test Suite for YAML
  • Unicode support including UTF-8/UTF-16/UTF-32 input/output.
  • Low-level API for serializing and deserializing native Java objects.
  • Only JSON Schema is supported.
  • The Core Schema might be supported later.
  • Relatively sensible error messages (can be switched off to improve performance).