package data-encoding

  1. Overview
  2. Docs
Library of JSON and binary encoding combinators

Install

Dune Dependency

Authors

Maintainers

Sources

data-encoding-v0.7.1.tar.gz
md5=a1a36b7ed3e4e17f751462ff54cf1c6f
sha512=93cbec5d3d3828b5368203b76af543c491d545e7d2200a050996289dc705b43ad025bc2e3201a8b1240ea3e2609f4abba9000ea15c53b84294f0cf3bfd89a92d

Description

Published: 14 Nov 2022

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 (10)

  1. ppx_hash
  2. either
  3. json-data-encoding-bson >= "0.12" & < "0.13"
  4. json-data-encoding >= "0.12" & < "0.13"
  5. hex >= "1.3.0"
  6. zarith_stubs_js
  7. zarith >= "1.4"
  8. ezjsonm
  9. dune >= "2.0"
  10. ocaml >= "4.10"

Dev Dependencies (7)

  1. js_of_ocaml-compiler with-test
  2. md2mld with-test
  3. odoc with-doc
  4. ocamlformat = "0.20.1" & with-doc
  5. ppx_expect with-test
  6. crowbar >= "0.2" & with-test
  7. alcotest with-test

Used by (41)

  1. octez-codec >= "16.0" & < "20.1"
  2. octez-l2-libs < "20.1"
  3. octez-libs < "20.1"
  4. octez-plonk
  5. octez-proto-libs < "20.1"
  6. octez-protocol-017-PtNairob-libs < "20.1"
  7. octez-protocol-018-Proxford-libs < "20.1"
  8. octez-protocol-alpha-libs < "20.1"
  9. octez-shell-libs < "20.1"
  10. octez-smart-rollup-node-alpha < "20.1"
  11. octez-smart-rollup-node-Proxford < "20.1"
  12. octez-smart-rollup-node-PtMumbai
  13. octez-smart-rollup-node-PtNairob < "20.1"
  14. osnap >= "0.3.0"
  15. plebeia
  16. ppx_pbt >= "0.2.1"
  17. scaml >= "1.5.0"
  18. tezos-baking-015-PtLimaPt >= "16.0"
  19. tezos-baking-016-PtMumbai
  20. tezos-baking-017-PtNairob
  21. tezos-baking-alpha >= "16.0"
  22. tezos-base >= "16.0"
  23. tezos-benchmark < "20.1"
  24. tezos-bls12-381-polynomial < "1.0.0"
  25. tezos-client-commands >= "16.0"
  26. tezos-crypto >= "16.0"
  27. tezos-crypto-dal >= "16.0"
  28. tezos-error-monad >= "16.0"
  29. tezos-event-logging >= "16.0"
  30. tezos-event-logging-test-helpers >= "16.0"
  31. tezos-hacl >= "16.0"
  32. tezos-micheline >= "16.0"
  33. tezos-plompiler < "1.0.0"
  34. tezos-plonk
  35. tezos-protocol-environment >= "16.0"
  36. tezos-rpc >= "16.0"
  37. tezos-sapling >= "16.0"
  38. tezos-scoru-wasm >= "16.0"
  39. tezos-stdlib-unix >= "16.0"
  40. tezos-test-helpers >= "16.0"
  41. tezos-tree-encoding >= "16.0"

Conflicts

None

OCaml

Innovation. Community. Security.