package yojson
Yojson is an optimized parsing and printing library for the JSON format
Install
Dune Dependency
Authors
Maintainers
Sources
yojson-1.6.0.tbz
sha256=5616cc6dd4c54bfb5d8cedc9271e01b0f2e3423e5c0ea5a91bf00033bf1f9d13
md5=8ca16557d3068253cc375452af3bde96
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: 31 Jan 2019
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 (1)
-
alcotest
with-test & >= "0.8.5"
-
0install
< "2.18"
- acgtk
- archetype
-
atd
>= "2.6.0"
-
atdgen
< "2.2.1"
-
atdgen-runtime
< "2.2.1"
- avro-compiler
- aws-config
-
aws-s3
< "4.5.1" | >= "4.8.0"
- awsm-codegen
- bap-radare2
- bitcoin
- boulangerie
-
builder-web
>= "0.2.0"
-
calculon
< "0.7"
- calculon-redis-lib
- camels
- canary
- cb-check
- cbor
- cconv-ppx
- colibrics
- comby
- comby-kernel
- comby-semantic
-
containers
>= "3.9"
- coq-of-ocaml
- current_docker
- current_git
- current_github
- current_gitlab
- current_slack
- current_ssh
- dap
- daypack-lib
- dblp-api
- decoders-yojson
- devkit
- docker-api
- docker_hub
-
dot-merlin-reader
< "4.6"
- dream
- dream-inertia
- dropbox
-
dune-release
>= "1.4.0"
-
elasticsearch-cli
= "0.5"
- fiat-p256
- frama-c
- fred
- fstar
- gapi-ocaml
- gdbprofiler
-
gemini
< "0.3.0"
-
github
< "4.1.0"
-
goblint-cil
>= "1.8.0"
-
gopcaml-mode-merlin
< "0.0.6"
- graphql
-
graphql-async
>= "0.14.0"
-
graphql-cohttp
>= "0.13.0"
-
graphql-lwt
>= "0.14.0"
- graphql_ppx
- h2
- hacl_x25519
-
hilite
< "0.3.0"
- hl_yaml
- hockmd
- horned_worm
- hpack
- hsluv
- index-bench
- ip2location
- ip2locationio
-
irmin-bench
< "3.0.0"
-
irmin-graphql
>= "2.2.0"
- irmin-tezos
- jasmin
-
jhupllib
< "0.2.2"
- jose
-
js_of_ocaml-compiler
< "6.0.1"
- json-rpc
- json_decoder
- jsondiff
-
jsonrpc
< "1.6.0"
- jsonschema2atd
- jupyter
-
jupyter-kernel
< "0.7"
- jwt
- jwto
-
kappa-library
< "4.1.3"
- karamel
- kind2
-
kremlin
< "transition"
- kubecaml
- lambda-runtime
- lambdapi
- learn-ocaml
- letsencrypt
- libsail
-
linol
>= "0.2"
- linol-eio
- linol-lwt
- lsp
-
melange-json
= "1.2.0"
- melange-json-native
-
merlin
!= "3.8.0" & < "4.6-412"
- mirage-crypto-ec
- monorobot
- mopsa
- morbig
- nloge
- nsq
- obuilder
- ocaml-lsp-server
-
ocaml-protoc-plugin
>= "6.1.0"
- ocaml-protoc-yojson
- ocsigen-start
-
odoc
>= "2.0.0" & < "3.0.0~beta1"
- oframl
- ogen
- oidc
- openai-gym
-
opium
>= "0.19.0"
- oraft
- orun
- ozulip
- pbrt_yojson
-
pds-reachability
< "0.2.3"
- petr4
-
phylogenetics
>= "0.2.0"
-
pkcs11
< "1.0.0"
-
pkcs11-driver
>= "1.0.0"
- plist
- podge
- ppx_deriving_jsonschema
- ppx_deriving_yojson
- ppx_protocol_conv_json
- ppx_yojson
- prof_spacetime
- qmp
- quests
- r2pipe
- radare2
-
rdf
< "0.12.0"
- records
- repr-bench
-
rpclib
< "6.1.0"
- rungen
- SZXX
- safemoney
-
sail
< "0.15"
- satyrographos
- savvy
- semver2
- sentry
- slack
- slacko
- slug
-
smtml
>= "0.2.2"
- spotify-web-api
- stitch
- swagger
-
tdigest
< "2.1.0"
- telegraml
- textrazor
- tezos-context-hash-irmin
-
timedesc
< "0.8.0"
- timedesc-json
-
timere
< "0.4.0"
- u2f
- user-agent-parser
- vecosek
- vecosek-scene
- vercel
- vscoq-language-server
-
wamp
< "1.0"
- wamp-yojson
- webauthn
-
xapi-rrd
>= "1.9.0"
- zarr
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page