json-tokens: Tokenize JSON

[ bsd3, data, library ] [ Propose Tags ]

Convert JSON to a token stream. This libary focuses on high performance and minimal allocations. This library is distinguished from aeson in the following ways:

The difference in design decisions means that solutions using json-tokens are able to decode JSON twice as fast as solutions with `aeson. In the zeek-json benchmark suite, a json-tokens-based decoding outperforms aeson's decode by a factor of two. This speed comes at a cost. Users must write more code to use json-tokens than they do for aeson. If high-throughput parsing of small JSON documents is paramount, this cost may be worth bearing. It is always possible to go a step further and forego tokenization entirely, parsing the desired Haskell data type directly from a byte sequence. Doing this in a low-allocation way while retaining both the ability the handle JSON object keys in any order and the ability to handle escape sequences in object keys is fiendishly difficult. Kudos to the brave soul that goes down that path. For the rest of us, json-tokens is a compromise worth considering.

Versions [faq] 0.1.0.0, 0.1.0.1
Change log CHANGELOG.md
Dependencies array-builder (==0.1.*), array-chunks (>=0.1.1 && <0.2), base (>=4.12 && <5), byteslice (>=0.1.3 && <0.2), bytesmith (==0.3.*), bytestring (>=0.10.8 && <0.11), primitive (==0.7.*), scientific-notation (==0.1.*), text-short (>=0.1.3 && <0.2) [details]
License BSD-3-Clause
Copyright 2019 Andrew Martin
Author Andrew Martin
Maintainer andrew.thaddeus@gmail.com
Category Data
Home page https://github.com/andrewthad/json-tokens
Bug tracker https://github.com/andrewthad/json-tokens/issues
Uploaded by andrewthad at 2019-09-30T12:33:17Z
Distributions NixOS:0.1.0.1
Downloads 555 total (0 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-09-30 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees