package yojson
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=70a0f972fedebd736546eae832e255753d3214a8b3283597ae112577d70c8b33
md5=d80de1bacdde292af42f7c78b323da7b
Description
Yojson is an optimized parsing and printing library for the JSON format.
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: 27 Dec 2018
README
Yojson: low-level JSON library for OCaml
This library is for manipulating the json AST directly. For mapping between OCaml types and json, we recommend atdgen.
Library documentation
Currently at https://ocaml-community.github.io/yojson/
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
- dune
-
ocaml
>= "4.02.3"
Dev Dependencies
None
-
0install
< "2.18"
-
acgtk
>= "1.3.2" & < "1.5.3"
-
archetype
< "1.2.5"
-
atdgen
< "2.2.1"
-
atdgen-runtime
< "2.2.1"
-
aws
< "1.0.0"
-
aws-s3
>= "1.1.0" & < "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
-
datakit-ci
= "0.12.0"
- daypack-lib
- dblp-api
-
decoders-yojson
< "0.7.0"
- deriving-yojson
-
devkit
>= "0.4" & < "1.2"
- disml
-
docker-api
< "0.2.2"
- dream
-
earlybird
< "1.0.0"
-
facebook-sdk
< "0.3.1"
-
frama-c
>= "19.0" & < "23.0"
- fred
-
frenetic
>= "3.2.0" & < "5.0.5"
-
fstar
>= "0.9.3.0-beta1"
-
gapi-ocaml
< "0.4.3"
-
gdbprofiler
>= "0.2" & < "0.4"
-
gemini
< "0.3.0"
-
gen-bs
>= "0.1.0"
-
github
< "4.1.0"
-
goblint
< "1.1.1"
-
goblint-cil
>= "1.8.0"
-
graphql
< "0.14.0"
-
graphql_ppx
< "1.2.2"
- h2
-
hilite
< "0.3.0"
- hl_yaml
- hockmd
-
horned_worm
< "0.3.5"
- hpack
- hsluv
- index-bench
- iocaml
- iocaml-kernel
-
irmin-bench
< "3.0.0"
-
irmin-graphql
>= "2.2.0"
- irmin-tezos
-
jhupllib
< "0.2.2"
-
jose
< "0.7.0"
-
js_of_ocaml
= "2.8.4"
- js_of_ocaml-compiler
- json-pointer
- json-predicate
- json-rpc
- json_decoder
- jsondiff
-
jsonrpc
< "1.6.0"
- jsonschema2atd
-
jupyter
< "2.7.0"
-
jupyter-kernel
< "0.5"
- jwt
-
jwto
< "0.2.0"
-
KaSim
>= "4.0.0"
- karamel
- ketrew
- kind2
-
kremlin
< "transition"
- kubecaml
- lablqt
- learn-ocaml
- lsp
-
merlin
< "3.3.3"
- merlin-acme
- mezzo
-
minimal
>= "1.1.0"
- monorobot
-
morbig
< "0.10.4"
- netml
-
nsq
>= "0.2.4"
-
obuilder
< "0.4"
- ocaml-gist
- ocaml-lsp-server
-
ocaml-protoc-plugin
>= "6.1.0"
- ocaml-protoc-yojson
- ocaml-webworker
-
ocf
< "0.6.0"
-
oclaunch
< "0.2.1"
-
ocsigen-start
< "1.7.0"
-
odoc
>= "2.0.0" & < "2.3.0"
- oframl
- ogen
- oidc
-
ojs-base
!= "0.2.0" & < "0.6.0"
- openai-gym
- oraft
- orun
- ozulip
-
pds-reachability
< "0.2.3"
- petr4
-
phylogenetics
= "0.2.0"
-
pkcs11
>= "0.9.0" & < "1.0.0"
- plist
- podge
- ppx_deriving_jsonschema
-
ppx_deriving_protocol
< "0.8.1"
-
ppx_deriving_yojson
< "3.4"
- ppx_graphql
- ppx_json_types
-
ppx_protocol_conv
< "3.1.0"
-
ppx_protocol_conv_json
!= "3.1.3" & < "5.2.1"
-
ppx_yojson
< "1.0.0"
- prof_spacetime
-
qmp
< "0.19.0"
- quests
- r2pipe
- radare2
-
rdf
>= "0.9.0" & < "0.12.0"
-
records
< "1.0.0"
- repr-bench
-
rpc
= "2.2.0"
-
rpclib
< "6.1.0"
- rubytt
- rungen
- SZXX
- safemoney
- satyrographos
- semver2
- sentry
- slack
- slacko
- slug
- sparrow
- sphinxcontrib-ocaml
- spotify-web-api
- stitch
- swagger
-
tdigest
< "2.1.0"
- telegraml
- testrunner
-
textrazor
< "0.1.1"
- tezos-context-hash-irmin
- themoviedb
- transmission-rpc
- u2f
- usbmux
- vecosek
- vecosek-scene
- vercel
- vscoq-language-server
-
wamp
< "1.0"
- wamp-yojson
- webauthn
-
xapi-rrd
>= "1.9.0"
Conflicts
None