preserves-nim/README.md

29 lines
1.0 KiB
Markdown
Raw Normal View History

2021-10-25 17:07:16 +00:00
# Preserves
2021-06-02 13:51:36 +00:00
Nim implementation of the [Preserves data language](https://preserves.gitlab.io/preserves/preserves.html).
2021-09-08 09:11:54 +00:00
2021-10-25 17:07:16 +00:00
## Library
To parse or produce Preserves one should write a
[schema](https://preserves.gitlab.io/preserves/preserves-schema.html) 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`.
2021-09-08 09:11:54 +00:00
## Utilities
* preserves_schema_nim
* preserves_encode
* preserves_decode
* preserves_from_json
* preserves_to_json
2021-10-25 17:07:16 +00:00
### Installation
2021-09-08 09:11:54 +00:00
`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.