Recursive AI
oneyamlSpecification

Same behavior in every language.

Each oneyaml library is written from scratch for its language. What they share is behavior, and one conformance kit checks it.

The shared behavior

YAML 1.2 by default

yes is a string, 0777 a decimal integer, ~ null. Every library reads every scalar the same way.

YAML 1.1 is opt-in

Each 1.1 behavior, << merge keys included, is a named setting with the same name everywhere, off by default.

One reading, two layers

Typed reads and the lossless document run on one parser and one resolver, so they never disagree.

Minimal-diff edits

Set a value and only that value changes, in its own style. An untouched document writes back byte for byte.

Comments stay put

One set of rules decides which entry owns each comment, so it moves, stays or goes with that entry.

The same errors

Every diagnostic has a stable Y#### code, a source snippet and a suggested fix. The code means the same thing in every language.

Conformance

Checked, not promised

Every library passes the full yaml-test-suite before release, plus our own cases for edits, comments and diagnostics.

Read more