https://github.com/tek/data-encoding
https://github.com/tek/data-encoding
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tek/data-encoding
- Owner: tek
- License: other
- Created: 2021-05-26T16:20:04.000Z (about 5 years ago)
- Default Branch: bazel
- Last Pushed: 2021-05-27T12:31:53.000Z (about 5 years ago)
- Last Synced: 2025-03-17T16:38:39.004Z (over 1 year ago)
- Language: OCaml
- Size: 502 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
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.
Usage
-----
For a type `t`, you can use the library's combinators to build an 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:
```
open Data_encoding
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 encoding 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
```