Preserves: an Expressive Data Language

This repository contains a definition and various implementations of Preserves, a new data model, with associated serialization formats, in many ways comparable to JSON, XML, S-expressions, CBOR, ASN.1 BER, and so on.

Core documents

Preserves data model and serialization formats

Preserves is defined in terms of a syntax-neutral data model and semantics which all transfer syntaxes share. This allows trivial, completely automatic, perfect-fidelity conversion between syntaxes.

Preserves schema and queries


Implementations of the data model, plus the textual and/or binary transfer syntaxes:

Implementations of the data model, plus Syrup transfer syntax:


Preserves documents

Preserves Schema documents and codegen

Additional resources


Tony Garnock-Jones


The contents of this repository are made available to you under the Apache License, version 2.0 (, and are Copyright 2018-2022 Tony Garnock-Jones.