package json-data-encoding

  1. Overview
  2. Docs
Type-safe encoding to and decoding from JSON

Install

Dune Dependency

Authors

Maintainers

Sources

data-encoding-v1.0.0.tar.gz
md5=d15b03873f0ccc333b60bfcdf0595766
sha512=0a5355bae421b5d155eeff7ad333cce32cf317b88ac69a07be715ff9a4cd05c8e1715de4917ed8f67789070175654ea3e332a348e586d5005e8772f5672c4a6f

Description

Published: 03 Apr 2023

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)

Tutorial

A full tutorial is available in markdown form in src/tutorial.md.

It is available online on ocaml.org's package documentation and on data-encoding's own online documentation.

Build and Install

data-encoding can be built from source using dune:

dune build

or installed directly from opam:

opam install data-encoding

Dependencies (4)

  1. hex >= "1.3.0"
  2. uri >= "1.9.0"
  3. dune >= "3.0"
  4. ocaml >= "4.10"

Dev Dependencies (6)

  1. conf-npm with-test
  2. js_of_ocaml-compiler with-test
  3. odoc with-doc
  4. ocamlformat = "0.24.1" & with-doc
  5. alcotest with-test
  6. crowbar with-test

Used by (8)

  1. bechamel-js >= "0.3.0"
  2. data-encoding = "0.4" | = "0.6" | = "1.0.0"
  3. ez_api
  4. goblint >= "2.0.0"
  5. json-data-encoding-browser = "1.0.0"
  6. json-data-encoding-bson = "1.0.0"
  7. ozulip
  8. ppx_deriving_encoding >= "0.2.2"

Conflicts (1)

  1. data-encoding != version