package yojson
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=7d06340b769ed6ff5b2171a0e820d1e8f4337aef3929090fc976efe845639146
md5=729b5e15b2f7c1cb7d402bc301d06d0e
Description
It addresses a few shortcomings of json-wheel including 2x speedup, polymorphic variants and optional syntax for tuples and variants.
ydump is a pretty-printing command-line program provided with the yojson package.
The program atdgen can be used to derive OCaml-JSON serializers and deserializers from type definitions.
Published: 19 Jul 2017
README
Yojson: JSON library for OCaml
Library documentation
Currently at https://mjambon.github.io/mjambon2016/yojson-doc/Yojson.html
The link above is for the ocamldoc-generated of some past version of yojson. Suggestions on how to keep this documentation updated automatically for each minor release are welcome.
Design goals
- reducing inter-package dependencies by the use of polymorphic variants for the JSON tree type
- allowing variants of the JSON tree type to be shipped by the library itself or to be easily created as extensions of the library
- allowing type-aware serializers/deserializers such as json-static to read and write directly without going through a JSON tree, for efficiency purposes. This requires making readers and writers of JSON atoms (int, string, etc.) to be exported and composable.
providing a few non-standard, optional extensions of JSON. These extensions will include:
- optional quotes around "simple" field/constructor names
- a syntax for tuples (at least 2 elements):
(x, y)
- a syntax for variants (0 or 1 arg only):
<Foo> <Bar:"abc">
Other choices already in json-wheel
- distinction between ints and floats (optional)
Getting rid of the UTF-X encoding constraint that prevents from exchanging binary data:
- encoding is ASCII except for the contents of string literals
- string literals may represent arbitrary sequence of bytes
\uABCD
escapes in string literals expand to UTF-8
Miscellaneous
- no dependency on ocamlnet for UTF-8
Dependencies (5)
-
biniou
>= "1.2.0"
- easy-format
-
cppo
build
-
jbuilder
>= "1.0+beta7"
-
ocaml
>= "4.02.3"
Dev Dependencies
None
-
0install
< "2.18"
-
acgtk
< "1.5.3"
-
archetype
< "1.2.5"
-
atdgen
< "2.2.1"
-
atdgen-runtime
< "2.2.1"
-
aws-s3
< "4.5.1" | >= "4.8.0"
- bap-radare2
-
bitcoin
< "3.0"
- boulangerie
-
builder-web
>= "0.2.0"
- calculon-redis-lib
- camels
- canary
- cb-check
-
cbor
< "0.3"
- cconv-ppx
- colibrics
- comby
- comby-kernel
- comby-semantic
-
containers
>= "3.9"
- current_docker
- current_git
- current_github
- current_gitlab
- current_slack
- current_ssh
- dap
- daypack-lib
- dblp-api
-
decoders-yojson
< "0.7.0"
-
devkit
< "1.2"
- disml
-
docker-api
< "0.2.2"
- dream
- dream-inertia
-
frama-c
< "23.0"
- fred
- fstar
-
gapi-ocaml
< "0.4.3"
-
gdbprofiler
< "0.4"
-
gemini
< "0.3.0"
-
github
< "4.1.0"
-
goblint-cil
>= "1.8.0"
-
graphql
< "0.14.0"
-
graphql_ppx
< "1.2.2"
- h2
-
hilite
< "0.3.0"
- hl_yaml
- hockmd
- hpack
- hsluv
- index-bench
-
irmin-bench
< "3.0.0"
-
irmin-graphql
>= "2.2.0"
- irmin-tezos
-
jhupllib
< "0.2.2"
-
js_of_ocaml-compiler
< "5.9.0"
- json-rpc
- json_decoder
- jsondiff
-
jsonrpc
< "1.6.0"
- jsonschema2atd
-
jupyter
< "2.7.0"
-
jupyter-kernel
< "0.5"
- jwt
-
jwto
< "0.2.0"
- karamel
- kind2
-
kremlin
< "transition"
- learn-ocaml
- lsp
-
merlin
< "3.3.3"
- monorobot
-
morbig
< "0.10.4"
- nsq
-
obuilder
< "0.4"
- ocaml-lsp-server
-
ocaml-protoc-plugin
>= "6.1.0"
- ocaml-protoc-yojson
-
odoc
>= "2.0.0" & < "2.3.0"
- oframl
- ogen
- oidc
- openai-gym
- oraft
- orun
- ozulip
-
pds-reachability
< "0.2.3"
- petr4
-
phylogenetics
= "0.2.0"
-
pkcs11
< "1.0.0"
- plist
- podge
- ppx_deriving_jsonschema
-
ppx_yojson
< "1.0.0"
- prof_spacetime
-
qmp
< "0.19.0"
- quests
- r2pipe
- radare2
-
rdf
< "0.12.0"
-
records
< "1.0.0"
- repr-bench
-
rpclib
< "6.1.0"
- rungen
- SZXX
- safemoney
- satyrographos
- savvy
- sentry
- slack
- slacko
- slug
- spotify-web-api
- stitch
-
tdigest
< "2.1.0"
- telegraml
-
textrazor
< "0.1.1"
- tezos-context-hash-irmin
- u2f
- vecosek
- vecosek-scene
- vercel
- vscoq-language-server
-
wamp
< "1.0"
- wamp-yojson
- webauthn
-
xapi-rrd
>= "1.9.0"
Conflicts (1)
-
dune
>= "1.7.0"