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. hilite < "0.3.0"
  85. hl_yaml
  86. hockmd
  87. hpack
  88. hsluv
  89. httph
  90. huml
  91. huml-cli
  92. index-bench
  93. ip2location
  94. ip2locationio
  95. irmin-graphql
  96. irmin-tezos
  97. jasmin
  98. jhupllib
  99. jose
  100. js_of_ocaml-compiler < "6.0.1"
  101. json-rpc
  102. json_decoder
  103. jsondiff
  104. jsonrpc < "1.6.0"
  105. jsonschema
  106. jsonschema2atd
  107. jupyter
  108. jupyter-kernel
  109. jwt
  110. jwto
  111. kappa-library < "4.1.3"
  112. karamel
  113. kind2
  114. kremlin < "transition"
  115. kubecaml
  116. lablgtk3-extras >= "3.0.1"
  117. lambda-runtime
  118. lambdapi
  119. learn-ocaml
  120. letsencrypt < "2.0.0"
  121. letters
  122. libsail
  123. lichess_api
  124. linol >= "0.2"
  125. linol-eio
  126. linol-lwt
  127. lsp
  128. melange-json = "1.2.0"
  129. melange-json-native
  130. merlin = "4.5-411"
  131. miaou-core
  132. miaou-driver-web
  133. mirage-crypto-ec
  134. monorobot
  135. mopsa
  136. morbig
  137. nats-client
  138. nats-client-async >= "0.0.10"
  139. nloge
  140. nsq
  141. obuilder
  142. ocaml-lsp-server
  143. ocaml-protoc-plugin >= "6.1.0"
  144. ocaml-protoc-yojson
  145. ocaml_db_model
  146. ocaml_pgsql_model
  147. ocf
  148. ocsigen-start
  149. odoc = "2.1.1"
  150. oframl
  151. oidc
  152. ojs-base
  153. ojs_base
  154. ometrics < "0.2.0"
  155. opam-check-npm-deps >= "4.1.0"
  156. openai-gym
  157. openapi < "1.0.0"
  158. openapi_router
  159. openstellina
  160. opium >= "0.19.0"
  161. oraft
  162. orun
  163. osh
  164. oui
  165. ozulip
  166. pa_ppx < "0.19"
  167. pbrt_yojson
  168. pds-reachability
  169. pgn_parser
  170. phylogenetics >= "0.2.0"
  171. pkcs11
  172. pkcs11-driver >= "1.0.0"
  173. plist
  174. podge
  175. ppx_deriving_jsonschema
  176. ppx_deriving_yojson
  177. ppx_protocol_conv_json
  178. ppx_yojson
  179. ppx_yojson_conv_lib
  180. prof_spacetime
  181. qmp
  182. quests
  183. r2pipe
  184. radare2
  185. rdf < "1.0.0"
  186. records
  187. repr-bench
  188. rescriptdep
  189. rpclib
  190. rungen
  191. SZXX
  192. safemoney
  193. sail < "0.15"
  194. satyrographos
  195. savvy
  196. semver2
  197. sentry
  198. sihl < "0.2.0" | >= "0.3.0~rc2"
  199. sihl-core
  200. simple_httpd
  201. slack
  202. slacko
  203. slug
  204. smtml >= "0.7.0"
  205. snf_mcp
  206. spectrum_palette_ppx
  207. spotify-web-api
  208. stitch
  209. swagger
  210. tdigest < "2.1.0"
  211. telegraml
  212. textmate-language >= "0.3.0"
  213. textrazor
  214. tidy_email_sendgrid
  215. timedesc < "0.8.0"
  216. timedesc-json
  217. timere < "0.4.0"
  218. user-agent-parser
  219. vecosek
  220. vecosek-scene
  221. vercel
  222. vscoq-language-server < "2.3.3"
  223. vsrocq-language-server
  224. wamp < "1.0"
  225. wamp-yojson
  226. webauthn
  227. why3find
  228. xapi-rrd >= "1.9.0"
  229. yultracer
  230. zarr

Conflicts

None