Highlights
YAML compliance ~96%
Ghost YAML is now measured against the yaml-test-suite with a full offline harness (yamlComplianceMatrix).
- Reader compliance: ~54% → 96.06% (151 → 268 of 279 valid cases with a JSON fixture — same denominator as matrix.yaml.info; 1.3.0 shipped YAML before the suite was measured)
- Dozens of real parser bugs fixed (anchors/aliases, tags, block scalars, flow collections, comments, tabs, explicit keys, multi-line plain scalars, and silent wrong-tree cases)
- Writer round-trip: 100% (321/321); remaining kaml-oracle gaps are oracle limitations, not Ghost bugs
- Known remaining gaps are tracked by case ID in
YamlTestSuiteDeviations.kt(no silent skips) - New YAML + JSON coverage-guided fuzzing (Jazzer) in the JVM CI path
Safari / Wasm Speed Test (#16)
On JavaScriptCore (Safari / iOS), Ghost.encodeToString no longer collapses on CharArray.concatToString.
- JSC path: UTF-8 flat writer + browser
TextDecoder - Chrome / V8: keeps the char writer (already fast)
- Safari string Speed Test after fix: ~2.7× kotlinx.serialization
- JVM / Android / Native unchanged
Also in 1.3.1
- Spring + Retrofit collection bodies: top-level
List/Set/Mapunwrap (MVC + WebFlux, JSON + YAML); fix forList<String>/Map<String, String>falling through to Jackson - WKT string-channel overrides: nested Well-Known Types under
textChannel = trueavoid a full UTF-8 bridge + reparse - Hot-path allocation fixes: digit-walk HOFs no longer allocate on synthetic decode;
SetSerializerresilient path avoids double allocation Ghost.deserialize(bytes) { options }now uses the flat reader (same engine as plaindeserialize(bytes))- Study manual regenerated:
docs/Ghost-Serialization-Manual-1.3.1.pdf
Install
implementation("com.ghostserializer:ghost-serialization:1.3.1")Gradle plugin: com.ghostserializer.ghost version 1.3.1
Full notes: CHANGELOG.md