Go to file
Tony Garnock-Jones 47b4c07268 Release independent packages
preserves@3.990.4

Generated by cargo-workspaces
2023-10-31 13:27:35 +01:00
_data Update python docs 2023-10-29 21:41:24 +01:00
_includes Fix up cheat sheets 2023-10-29 22:11:43 +01:00
_layouts Link QuickRef in nav 2023-10-17 10:55:11 +02:00
_plugins Proper layouting 2019-08-18 22:08:55 +01:00
doc Adjust whitespace 2023-10-27 14:12:57 +02:00
git-hooks Fix up cheat sheets 2023-10-29 22:11:43 +01:00
historical Correct names 2022-03-07 08:31:24 +01:00
implementations Release independent packages 2023-10-31 13:27:35 +01:00
path Update implementations for simplified binary syntax. 2023-10-14 21:29:09 +02:00
python Update python docs 2023-10-29 21:41:24 +01:00
schema Update implementations for simplified binary syntax. 2023-10-14 21:29:09 +02:00
tests Repair error in Rust integer width calculation 2023-10-31 13:27:03 +01:00
.gitignore Versioned docs! 2023-03-17 09:07:53 +01:00
.gitlab-ci.yml Update CI script 2021-05-21 21:58:31 +02:00
Internet_Archive_Logo.svg Update why-not-json 2023-10-16 15:31:25 +02:00
LICENSE LICENSE, NOTICE, README.md 2019-08-08 14:46:03 +01:00
Makefile Update PDF generation 2022-06-18 21:51:09 +02:00
NOTICE NOTICE 2022-06-10 17:48:30 +02:00
README.md Use tables for implementations 2023-10-27 15:23:22 +02:00
TODO.md Note in TODO.md 2020-10-26 14:15:03 +01:00
TUTORIAL.md Correct names 2022-03-07 08:31:24 +01:00
_config.yml Introduce the notion of a "delimiter" to follow Boolean and SymbolOrNumber. 2023-10-29 15:55:19 +01:00
canonical-binary.md Split up spec! 2022-06-18 19:12:05 +02:00
cheatsheet-plaintext.md Document Preserves crate 2023-10-27 00:46:27 +02:00
cheatsheet.md Internal anchors 2023-10-17 10:57:33 +02:00
conventions.md Preserves really uses Unicode scalar values, not code points. 2023-10-13 14:01:21 +02:00
craiyon_111353.png Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
gitlab-logo-200.svg Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
gitlab-logo-500.svg Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
gitlab-logo-700.svg Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
index.md Tweak jekyll setup 2019-08-11 16:19:08 +01:00
logo-64x64.png Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
logo-256x256.png Fancy nav, plus craiyon logo! 2023-03-17 12:02:27 +01:00
normalize.css Proper layouting 2019-08-18 22:08:55 +01:00
notes.mb.md Proper layouting 2019-08-18 22:08:55 +01:00
preserves-binary.md Further small improvements 2023-10-17 01:34:21 +02:00
preserves-path.md Slightly improve text in path spec 2023-03-17 10:38:43 +01:00
preserves-schema.md Correct schema spec and note different usages of @name. Closes #31. 2023-10-29 15:20:42 +01:00
preserves-text.md Introduce the notion of a "delimiter" to follow Boolean and SymbolOrNumber. 2023-10-29 15:55:19 +01:00
preserves-zerocopy.md Preserves really uses Unicode scalar values, not code points. 2023-10-13 14:01:21 +02:00
preserves.css Better responsiveness 2023-10-17 10:01:07 +02:00
preserves.el Revised preserves.el instructions 2021-03-11 09:10:11 +01:00
preserves.md Java quasi-Symbols 2023-10-30 10:46:11 +01:00
questions.md Introduce the notion of a "delimiter" to follow Boolean and SymbolOrNumber. 2023-10-29 15:55:19 +01:00
quoting.rkt Explore quoting. 2018-12-06 21:25:51 +00:00
quoting.v Drastically improve quoting.v - including a much better main theorem 2020-06-18 23:57:42 +02:00
representations.md Proper layouting 2019-08-18 22:08:55 +01:00
run-jekyll Tweak run-jekyll script 2023-10-15 11:18:28 +02:00
setup.sh The Racket preserves package needs a local copy of schema.prs for the package-builder to work. Use a git hook to keep it in sync with the master copy 2021-05-26 14:27:03 +02:00
why-not-json.md Tweak 2023-10-17 11:22:12 +02:00
xml-infoset.prs XML Infoset convention 2021-09-30 14:46:46 +02:00

README.md

projectpages projecttree title no_site_title
https://gitlab.com/preserves/preserves https://gitlab.com/preserves/preserves/tree/main Preserves: an Expressive Data Language true

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.

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

Implementations of the data model, plus Preserves textual and binary transfer syntax

Language1 Code Package Docs
Nim git.syndicate-lang.org
Python preserves.dev pip install preserves docs
Racket preserves.dev raco pkg install preserves
Rust preserves.dev cargo add preserves docs
Squeak Smalltalk SqueakSource Installer ss project: 'Preserves';
  install: 'Preserves'
TypeScript/JavaScript preserves.dev yarn add @preserves/core

Implementations of the data model, plus Syrup transfer syntax

Language Code
Guile github.com/ocapn/syrup
Haskell github.com/zenhack/haskell-preserves
JavaScript github.com/zarutian/agoric-sdk
Python github.com/ocapn/syrup
Racket github.com/ocapn/syrup

Tools

Preserves documents

Preserves Schema documents and codegen

Additional resources

Contact

Tony Garnock-Jones tonyg@leastfixedpoint.com

Licensing

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.

Notes


  1. Pre-alpha implementations also exist for C and C++. ↩︎