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. apero-core
  5. apero-net
  6. archetype
  7. atd >= "2.6.0"
  8. atdgen < "2.10.0"
  9. atdgen-runtime < "2.10.0"
  10. avro-compiler
  11. aws-config
  12. aws-s3 < "4.5.1" | >= "4.8.0"
  13. awsm-codegen
  14. bap-radare2
  15. bitcoin
  16. boulangerie
  17. builder-web >= "0.2.0"
  18. caisar
  19. calculon
  20. calculon-redis-lib
  21. calculon-web = "0.6"
  22. camelot >= "1.3.0"
  23. camels
  24. canary
  25. cb-check
  26. cbor
  27. cconv-ppx
  28. chess_com_api
  29. colibrics
  30. comby
  31. comby-kernel
  32. comby-semantic
  33. commons
  34. containers >= "3.9"
  35. coq-lsp
  36. coq-of-ocaml
  37. coq-serapi >= "8.10.0+0.7.0" & < "8.20.0+0.20.0"
  38. current_docker
  39. current_examples
  40. current_git
  41. current_github
  42. current_gitlab
  43. current_slack
  44. current_ssh
  45. current_web
  46. dap
  47. daypack-lib
  48. dblp-api
  49. decoders-yojson
  50. devkit
  51. docker-api
  52. docker_hub
  53. dot-merlin-reader < "4.9"
  54. dream
  55. dream-inertia
  56. dropbox
  57. dune-release >= "1.4.0"
  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. gemini < "0.3.0"
  69. gendarme-json
  70. github
  71. github-data
  72. gitlab
  73. goblint-cil >= "1.8.0"
  74. gopcaml-mode-merlin < "0.0.6"
  75. graphql
  76. graphql-async >= "0.14.0"
  77. graphql-cohttp >= "0.13.0"
  78. graphql-lwt >= "0.14.0"
  79. graphql_ppx
  80. gremlin
  81. h2
  82. hacl_x25519
  83. hilite < "0.3.0"
  84. hl_yaml
  85. hockmd
  86. horned_worm
  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
  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. mirage-crypto-ec
  132. monorobot
  133. mopsa
  134. morbig
  135. nloge
  136. nsq
  137. obuilder
  138. ocaml-lsp-server
  139. ocaml-protoc-plugin >= "6.1.0"
  140. ocaml-protoc-yojson
  141. ocaml_db_model
  142. ocaml_pgsql_model
  143. ocf
  144. ocsigen-start
  145. odoc = "2.1.1"
  146. oframl
  147. ogen
  148. oidc
  149. ojs-base
  150. ojs_base
  151. ometrics < "0.2.0"
  152. openai-gym
  153. openapi < "1.0.0"
  154. openapi_router
  155. openstellina
  156. opium >= "0.19.0"
  157. oraft
  158. orun
  159. osh
  160. ozulip
  161. pa_ppx < "0.19"
  162. pbrt_yojson
  163. pds-reachability
  164. petr4
  165. pgn_parser
  166. phylogenetics >= "0.2.0"
  167. pkcs11
  168. pkcs11-driver >= "1.0.0"
  169. plist
  170. podge
  171. ppx_deriving_jsonschema
  172. ppx_deriving_yojson
  173. ppx_protocol_conv_json
  174. ppx_yojson
  175. ppx_yojson_conv < "v0.13.0"
  176. ppx_yojson_conv_lib
  177. prof_spacetime
  178. qmp
  179. quests
  180. r2pipe
  181. radare2
  182. rdf < "1.0.0"
  183. records
  184. repr-bench
  185. rpclib
  186. rungen
  187. SZXX
  188. safemoney
  189. sail < "0.15"
  190. satyrographos
  191. savvy
  192. semver2
  193. sentry
  194. sihl < "0.2.0" | >= "0.3.0~rc2"
  195. sihl-core
  196. slack
  197. slacko
  198. slug
  199. smtml >= "0.7.0"
  200. snf_mcp
  201. spotify-web-api
  202. stitch
  203. swagger
  204. tdigest < "2.1.0"
  205. telegraml
  206. textmate-language >= "0.3.0"
  207. textrazor
  208. tezos-context-hash-irmin
  209. tidy_email_sendgrid
  210. timedesc < "0.8.0"
  211. timedesc-json
  212. timere < "0.4.0"
  213. user-agent-parser
  214. vecosek
  215. vecosek-scene
  216. vercel
  217. vscoq-language-server
  218. vsrocq-language-server
  219. wamp < "1.0"
  220. wamp-yojson
  221. webauthn
  222. why3find
  223. xapi-rrd >= "1.9.0"
  224. zarr

Conflicts

None