package yojson
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=c081a8cb5a03bddbcac4614f468cf5edafe11805277572af4071e362be6611fb
md5=3ea6e36422dd670e8ab880710d5f7398
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: 24 Feb 2018
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
\uABCDescapes 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" - anthropic
-
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
< "0.6" - 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
-
elpi
>= "3.3.1" -
frama-c
< "23.0" - fred
- fstar
-
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
- huml
- huml-cli
- index-bench
- irmin-graphql
- irmin-tezos
-
jhupllib
< "0.2.2" -
js_of_ocaml-compiler
< "5.9.0" - json-rpc
- json_decoder
- jsondiff
-
jsonrpc
< "1.6.0" - jsonschema
- jsonschema2atd
-
jupyter
< "2.7.0" -
jupyter-kernel
< "0.5" - jwt
-
jwto
< "0.2.0" - karamel
- kind2
-
kremlin
< "transition" - kubecaml
- learn-ocaml
- lsp
- monorobot
-
morbig
< "0.10.4" - nsq
-
obuilder
< "0.4" - ocaml-lsp-server
-
ocaml-protoc-plugin
>= "6.1.0" - ocaml-protoc-yojson
-
odoc
= "2.1.1" - oframl
- ogen
- oidc
- openai-gym
- oraft
- orun
- ozulip
-
pds-reachability
< "0.2.3" - petr4
-
phylogenetics
= "0.2.0" - pkcs11
- 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
- rungen
- SZXX
- safemoney
- satyrographos
- savvy
- semver2
- sentry
- slack
- slacko
- slug
- spotify-web-api
- stitch
- swagger
-
tdigest
< "2.1.0" - telegraml
-
textrazor
< "0.1.1" - tezos-context-hash-irmin
- vecosek
- vecosek-scene
- vercel
- vscoq-language-server
- vsrocq-language-server
-
wamp
< "1.0" - wamp-yojson
- webauthn
-
xapi-rrd
>= "1.9.0"
Conflicts (1)
-
dune
>= "1.7.0"