aeson-combinators: Aeson combinators for dead simple JSON decoding

[ bsd3, json, library, text, web ] [ Propose Tags ]

Low overhead value space Decoder on top of Aeson's Parser for combinator style decoding.


[Skip to Readme]

Modules

[Last Documentation]

  • Data
    • Aeson
      • Combinators
        • Data.Aeson.Combinators.Decode
        • Data.Aeson.Combinators.Encode

Flags

Manual Flags

NameDescriptionDefault
doctestDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1.0, 0.0.1.1, 0.0.2.0, 0.0.2.1, 0.0.3.0, 0.0.4.0, 0.0.4.1, 0.0.5.0, 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.2.0, 0.1.2.1
Change log CHANGELOG.md
Dependencies aeson, attoparsec-aeson, base (>=4 && <5), bytestring, containers, fail, scientific, text, time, time-compat, unordered-containers, uuid-types, vector, void [details]
License BSD-3-Clause
Copyright (c) 2020 Marek Fajkus
Author Marek Fajkus <marek.faj@gmail.com>
Maintainer Marek Fajkus <marek.faj@gmail.com>
Category Text, Web, JSON
Home page https://github.com/turboMaCk/aeson-combinators
Bug tracker https://github.com/turboMaCk/aeson-combinators/issues
Source repo head: git clone https://github.com/turboMaCk/aeson-combinators.git
Uploaded by MarekFajkus at 2023-12-28T11:23:56Z
Distributions LTSHaskell:0.1.2.1, NixOS:0.1.2.1, Stackage:0.1.2.1
Downloads 2346 total (47 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2023-12-28 [all 2 reports]

Readme for aeson-combinators-0.1.2.0

[back to package description]

Aeson Combinators

Build Status built with nix

Low overhead value space Decoder on top of Aeson's Parser for combinator style decoding.

This library is compatible with GHC as well as recent versions of GHCJS.

Performance

Decoder a type is a function Value -> Parser a the same as parseJSON member function of FromJSON class. This means there should be near zero overhead. Aeson types and functions are reused where possible. Similarly Encoder a type follow toJSON from ToJSON type class.

Simple benchmark shows that implementation using aeson-combinators performs better than equivalent derived instance and on par (actually even slightly better though with difference in noise range) with manually implemented instance.

License

(c) 2020 Marek Fajkus BSD-3-Clause