package yojson

  1. Overview
  2. Docs
Yojson is an optimized parsing and printing library for the JSON format

Install

dune-project
 Dependency

Authors

Maintainers

Sources

yojson-1.7.0.tbz
sha256=656fc65f794186274f8b961dc38daba9e2de2fc993829291defbda2186812cc6
md5=b89d39ca3f8c532abe5f547ad3b8f84d

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: 15 Feb 2019

README

Yojson: low-level JSON library for OCaml

Build Status

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)

  1. biniou >= "1.2.0"
  2. easy-format
  3. cppo build
  4. dune
  5. ocaml >= "4.02.3"

Dev Dependencies (1)

  1. alcotest with-test & >= "0.8.5"

  1. 0install
  2. acgtk
  3. anthropic
  4. archetype
  5. atd >= "2.6.0"
  6. atdgen < "2.10.0"
  7. atdgen-runtime < "2.10.0"
  8. avro-compiler
  9. aws-config
  10. aws-s3 < "4.5.1" | >= "4.8.0"
  11. awskit-lwt-unix
  12. awskit-s3
  13. awsm-codegen
  14. bap-radare2
  15. bitcoin
  16. boulangerie
  17. builder-web >= "0.2.0"
  18. cabal
  19. caisar
  20. calculon
  21. camelot >= "1.4.2"
  22. camels
  23. canary
  24. cb-check
  25. cbor
  26. chess_com_api
  27. colibrics
  28. comby
  29. comby-kernel
  30. comby-semantic
  31. commons
  32. containers >= "3.9"
  33. coq-lsp
  34. coq-of-ocaml
  35. coq-serapi < "8.20.0+0.20.0"
  36. current_docker
  37. current_examples
  38. current_git
  39. current_github
  40. current_gitlab
  41. current_slack
  42. current_ssh
  43. current_web
  44. dap
  45. daypack-lib
  46. dblp-api
  47. decoders-yojson
  48. devkit
  49. dnsrobot
  50. docker-api
  51. docker_hub
  52. dot-merlin-reader < "4.9"
  53. dream
  54. dream-inertia
  55. dropbox
  56. dune-release >= "1.4.0"
  57. ecma-regex
  58. elasticsearch-cli = "0.5"
  59. elpi >= "3.3.1"
  60. esgg
  61. fiat-p256
  62. frama-c
  63. fred
  64. frenetic
  65. fstar
  66. gapi-ocaml
  67. gdbprofiler
  68. gendarme-json < "0.4.0"
  69. gendarme-yojson
  70. github
  71. github-data
  72. github-unix < "4.5.1"
  73. gitlab
  74. goblint-cil >= "1.8.0"
  75. gopcaml-mode-merlin < "0.0.6"
  76. graphql
  77. graphql-async >= "0.14.0"
  78. graphql-cohttp >= "0.13.0"
  79. graphql-lwt >= "0.14.0"
  80. graphql_ppx
  81. gremlin
  82. h2
  83. hacl_x25519
  84. hegel
  85. hilite < "0.3.0"
  86. hl_yaml
  87. hockmd
  88. hpack
  89. hsluv
  90. httph
  91. huml
  92. huml-cli
  93. index-bench
  94. ip2location
  95. ip2locationio
  96. irmin-graphql
  97. irmin-tezos
  98. jasmin
  99. jhupllib
  100. jose
  101. js_of_ocaml-compiler < "6.0.1"
  102. json-rpc
  103. json_decoder
  104. jsondiff
  105. jsonrpc < "1.6.0"
  106. jsonschema
  107. jsonschema2atd
  108. jupyter
  109. jupyter-kernel
  110. jwt
  111. jwto
  112. kappa-library < "4.1.3"
  113. karamel
  114. kind2
  115. kremlin < "transition"
  116. kubecaml
  117. lablgtk3-extras >= "3.0.1"
  118. lambda-runtime
  119. lambdapi
  120. learn-ocaml
  121. letsencrypt < "2.0.0"
  122. letters
  123. libsail
  124. lichess_api
  125. linol >= "0.2"
  126. linol-eio
  127. linol-lwt
  128. lsp
  129. melange-json = "1.2.0"
  130. melange-json-native
  131. merlin = "4.5-411"
  132. miaou-core
  133. miaou-driver-web
  134. mirage-crypto-ec
  135. monorobot
  136. mopsa
  137. morbig
  138. nats-client
  139. nats-client-async >= "0.0.10"
  140. nloge
  141. nsq
  142. obuilder
  143. ocaml-lsp-server
  144. ocaml-protoc-plugin >= "6.1.0"
  145. ocaml-protoc-yojson
  146. ocaml_db_model
  147. ocaml_pgsql_model
  148. ocf
  149. ocsigen-start
  150. odoc = "2.1.1"
  151. oframl
  152. oidc
  153. ojs-base
  154. ojs_base
  155. ometrics < "0.2.0"
  156. opam-check-npm-deps >= "4.1.0"
  157. openai-gym
  158. openapi < "1.0.0"
  159. openapi_router
  160. openstellina
  161. opium >= "0.19.0"
  162. oraft
  163. orun
  164. osh
  165. oui
  166. ozulip
  167. pa_ppx < "0.19"
  168. pbrt_yojson
  169. pds-reachability
  170. pgn_parser
  171. phylogenetics >= "0.2.0"
  172. pkcs11
  173. pkcs11-driver >= "1.0.0"
  174. playwright
  175. plist
  176. podge
  177. ppx_deriving_jsonschema
  178. ppx_deriving_yojson
  179. ppx_hegel_test
  180. ppx_protocol_conv_json
  181. ppx_yojson
  182. ppx_yojson_conv_lib
  183. prof_spacetime
  184. qmp
  185. quests
  186. r2pipe
  187. radare2
  188. rdf < "1.0.0"
  189. records
  190. repr-bench
  191. rescriptdep
  192. rpclib
  193. rungen
  194. SZXX
  195. safemoney
  196. sail < "0.15"
  197. satyrographos
  198. savvy
  199. semver2
  200. sentry
  201. sihl < "0.2.0" | >= "0.3.0~rc2"
  202. sihl-core
  203. simple_httpd
  204. slack
  205. slacko
  206. slug
  207. smtml >= "0.7.0"
  208. snf_mcp
  209. soteria
  210. spectrum_palette_ppx
  211. spotify-web-api
  212. stitch
  213. swagger
  214. tdigest < "2.1.0"
  215. telegraml
  216. textmate-language >= "0.3.0"
  217. textrazor
  218. tidy_email_sendgrid
  219. timedesc < "0.8.0"
  220. timedesc-json
  221. timere < "0.4.0"
  222. user-agent-parser
  223. vecosek
  224. vecosek-scene
  225. vercel
  226. vscoq-language-server < "2.3.3"
  227. vsrocq-language-server
  228. wamp < "1.0"
  229. wamp-yojson
  230. webauthn
  231. why3find
  232. xapi-rrd >= "1.9.0"
  233. yultracer
  234. zarr

Conflicts

None