Preserves: an Expressive Data Language
This repository contains a definition and various implementations of Preserves, a data model with associated serialization formats in many ways comparable to JSON, XML, S-expressions, CBOR, ASN.1 BER, and so on.
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 specification:
- Preserves tutorial
- Quick Reference for Preserves syntax
- Canonical Form for Binary Syntax
- Syrup, a hybrid binary/human-readable syntax for the Preserves data model
Preserves schema and queries
Implementations of the data model, plus Preserves textual and binary transfer syntax
pip install preserves
raco pkg install preserves
cargo add preserves
Installer ss project: 'Preserves';
yarn add @preserves/core
Implementations of the data model, plus Syrup transfer syntax
- preserves-tool, generic syntax translation and pretty-printing
Preserves Schema documents and codegen
- Preserves Expressions (P-expressions, pexprs)
- Some conventions for common data types
- Open questions; see also the issues list
- Why not Just Use JSON?
Tony Garnock-Jones firstname.lastname@example.org
The contents of this repository are made available to you under the Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0), and are Copyright 2018-2022 Tony Garnock-Jones.