swh:1:snp:61dcfc0dd5674a0e65803e88039c122d9532074e
Raw File
Tip revision: c12e6c03f79a3948e3cd5c774b5bd22bfbcb1f01 authored by Raphaƫl Proust on 07 March 2020, 22:55:43 UTC
PARTIAL: start of work (some incomplete) on pp_of_encoding
Tip revision: c12e6c0
README.md
Data-encoding
=============

A library for encoding and decoding data. It offers a great degree of control over the layout of data. It supports json and binary serialisation/deserialisation.


Use
---

For a type `t`, you can use the library's combinators to build a encoding `t
encoding`. You can then use the various reading/writing functions with this
encoding to serialise and deserialise values of the type `t`.

Example:

```
type t = (string * int) list
let encoding = list (tup2 string int31)
let v = [("foo", 32); ("bar", 0)]
let j = Json.construct encoding v
let w = Json.destruct j
let () = assert (v = w)
```

Build and Install
-----------------

`data-encoding` can be built from source using `dune`:

```
dune build
```

or installed directly from `opam`:

```
opam install data-encoding
```
back to top