aeson: Fast JSON parsing and encoding

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

A JSON parsing and encoding library optimized for ease of use and high performance.

To get started, see the documentation for the Data.Aeson module below.

Parsing performance on an early 2011 MacBook Pro (2.2GHz Core i7), running 64-bit GHC 7.6.3, for mostly-English tweets from Twitter's JSON search API:

  • 0.8 KB: 34124 msg/sec (27.8 MB/sec)

  • 6.4 KB: 6833 msg/sec (43.0 MB/sec)

  • 11.8 KB: 3410 msg/sec (39.2 MB/sec)

  • 31.2 KB: 1157 msg/sec (35.3 MB/sec)

  • 61.5 KB: 542 msg/sec (32.5 MB/sec)

Handling heavily-escaped text is a little more work. Here is parsing performance with Japanese tweets, where much of the text is entirely Unicode-escaped.

  • 14.6 KB: 2101 msg/sec (30.0 MB/sec)

  • 44.1 KB: 667 msg/sec (28.7 MB/sec)

  • 82.9 KB: 360 msg/sec (29.2 MB/sec)

Encoding performance on the same machine and data:

  • English, 0.8 KB: 109697 msg/sec (89.3 MB/sec)

  • English, 6.4 KB: 18517 msg/sec (116.4 MB/sec)

  • Engish, 61.5 KB: 1963 msg/sec (118.0 MB/sec)

  • Japanese, 14.6 KB: 12140 msg/sec (173.5 MB/sec)

  • Japanese, 44.1 KB: 3980 msg/sec (171.3 MB/sec)

(A note on naming: in Greek mythology, Aeson was the father of Jason.)


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
developer

operate in developer mode

Disabled
Automatic Flags
NameDescriptionDefault
old-locale

If false then depend on time >= 1.5.

If true then depend on time >= 1.1.3 && < 1.5 together with old-locale.

Disabled

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

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.3.1.0, 0.3.1.1, 0.3.2.0, 0.3.2.1, 0.3.2.2, 0.3.2.3, 0.3.2.4, 0.3.2.5, 0.3.2.6, 0.3.2.7, 0.3.2.8, 0.3.2.9, 0.3.2.10, 0.3.2.11, 0.3.2.12, 0.3.2.13, 0.3.2.14, 0.4.0.0, 0.4.0.1, 0.5.0.0, 0.6.0.0, 0.6.0.1, 0.6.0.2, 0.6.1.0, 0.6.2.0, 0.6.2.1, 0.7.0.0, 0.7.0.1, 0.7.0.2, 0.7.0.3, 0.7.0.4, 0.7.0.5, 0.7.0.6, 0.8.0.0, 0.8.0.1, 0.8.0.2, 0.8.1.0, 0.8.1.1, 0.9.0.0, 0.9.0.1, 0.10.0.0, 0.11.0.0, 0.11.1.0, 0.11.1.1, 0.11.1.2, 0.11.1.3, 0.11.1.4, 0.11.2.0, 0.11.2.1, 0.11.3.0, 1.0.0.0, 1.0.1.0, 1.0.2.0, 1.0.2.1, 1.1.0.0, 1.1.1.0, 1.1.2.0, 1.2.0.0, 1.2.1.0, 1.2.2.0, 1.2.3.0, 1.2.4.0, 1.3.0.0, 1.3.1.0, 1.3.1.1, 1.4.0.0, 1.4.1.0, 1.4.2.0, 1.4.3.0, 1.4.4.0, 1.4.5.0, 1.4.6.0, 1.4.7.0, 1.4.7.1, 1.5.0.0, 1.5.1.0, 1.5.2.0, 1.5.3.0, 1.5.4.0, 1.5.4.1, 1.5.5.0, 1.5.5.1, 1.5.6.0, 2.0.0.0, 2.0.1.0, 2.0.2.0, 2.0.3.0, 2.1.0.0, 2.1.1.0, 2.1.2.0, 2.1.2.1, 2.2.0.0, 2.2.1.0, 2.2.2.0, 2.2.3.0 (info)
Change log changelog.md
Dependencies attoparsec (>=0.13.0.0), base (>=4.5 && <4.9), bytestring (>=0.10.4.0 && <0.11), containers, deepseq, dlist (>=0.2), ghc-prim (>=0.2), hashable (>=1.1.2.0), mtl, old-locale, scientific (>=0.3.1 && <0.4), syb, template-haskell (>=2.4), text (>=1.1.1.0), time (>=1.1.3), transformers, unordered-containers (>=0.2.5.0), vector (>=0.7.1) [details]
License BSD-3-Clause
Copyright (c) 2011-2015 Bryan O'Sullivan (c) 2011 MailRank, Inc.
Author Bryan O'Sullivan <bos@serpentine.com>
Maintainer Bryan O'Sullivan <bos@serpentine.com>
Revised Revision 4 made by phadej at 2021-10-20T14:58:45Z
Category Text, Web, JSON
Home page https://github.com/bos/aeson
Bug tracker https://github.com/bos/aeson/issues
Source repo head: git clone git://github.com/bos/aeson.git
head: hg clone https://bitbucket.org/bos/aeson
Uploaded by BryanOSullivan at 2015-05-11T07:12:51Z
Distributions Arch:2.1.2.1, Debian:1.4.7.1, Fedora:2.1.2.1, FreeBSD:0.8.0.2, LTSHaskell:2.1.2.1, NixOS:2.1.2.1, Stackage:2.2.3.0, openSUSE:2.1.2.1
Reverse Dependencies 2330 direct, 5542 indirect [details]
Downloads 593420 total (979 in the last 30 days)
Rating 3.0 (votes: 41) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-05-11 [all 1 reports]

Readme for aeson-0.8.1.0

[back to package description]

Welcome to aeson

aeson is a fast Haskell library for working with JSON data.

Join in!

We are happy to receive bug reports, fixes, documentation enhancements, and other improvements.

Please report bugs via the github issue tracker.

Master git repository:

  • git clone git://github.com/bos/aeson.git

There's also a Mercurial mirror:

  • hg clone http://bitbucket.org/bos/aeson

(You can create and contribute changes using either git or Mercurial.)

Authors

This library is written and maintained by Bryan O'Sullivan, bos@serpentine.com.