omnist-j¶
A from-scratch, spec-first Java implementation of Omnist — a data-interchange format built around one idea: a document is an ordered list of labeled edges, not a map.
Most formats model an object as a map from key to value. That works fine until a format needs to express "many" without a wrapper, or interleave repeated elements with other data — the shape XML uses and JSON, YAML, and TOML can't natively carry. Omnist's Document model handles all of it the same way: a node is a list of (label, value) edges, in order, with no special case for arrays. Two item edges are the array. There is no separate list type to define.
omnist-j reads and writes all five formats — JSON, YAML, TOML, XML, and OML (the native format) — into that one model, validates and materializes documents against a schema (OSD), and implements the schema algebra: compatible_with, equivalent, normalize, extract, prune, lint, infer.
Why "spec-first"¶
This port follows omnist-spec as its primary normative contract — vendor/omnist-spec is pinned as a git submodule. See the workflow playbook for the full engineering policy.
Install¶
<dependency>
<groupId>dev.omnist</groupId>
<artifactId>omnist-j</artifactId>
</dependency>
Where to go next¶
- Guide & quickstart — the Omnist mental model and a working example
- API reference — the full Java API
- Javadoc — generated API docs, straight from source
- CLI reference — every
omnistsubcommand - Status & limitations — conformance results, coverage, what's implemented