Nim implementation of the Preserves data language
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Emery Hemingway 29d7352a23 Assert upreservable pragma at runtime 3 days ago
src Assert upreservable pragma at runtime 3 days ago
tests mapEmbeds for Preserve[void] to Preserve[E] 3 days ago
upstream@b2c3032e7a Schemas: use canonical meta-schema 2 weeks ago
.gitignore Schemas: use canonical meta-schema 2 weeks ago
.gitmodules Schemas: use canonical meta-schema 2 weeks ago
README.md Update documentation 3 days ago
UNLICENSE Unlicense 2 months ago
preserves.nimble Fix schema import, normalize version 2 weeks ago

README.md

Preserves

Nim implementation of the Preserves data language.

Library

To parse or produce Preserves one should write a schema and generate a Nim module using the preserves_schema_nim utility. This module will contain Nim types corresponding to schema definitions. The toPreserve and fromPreserve routines will convert Nim types to and from Preserves. The decodePreserves, parsePreserves, encode, and $ routines will convert Preserve objects to and from binary and textual encoding.

To debug the toPreserves and fromPreserves routines compile with -d:tracePreserves.

Utilities

  • preserves_schema_nim
  • preserves_encode
  • preserves_decode
  • preserves_from_json
  • preserves_to_json

Installation

preserves_encode is a multi-call binary that implements preserves_encode, preserves_decode, preserves_from_json, and preserves_to_json, so the appropriate symlinks should be created during packaging.