aeson: Fast JSON parsing and encoding
A JSON parsing and encoding library optimized for ease of use and high performance.
Parsing performance on a late 2010 MacBook Pro (2.66GHz Core i7), for mostly-English tweets from Twitter's JSON search API:
0.8 KB, 32-bit GHC 6.12.3: 29945 msg/sec (24.4 MB/sec)
0.8 KB, 64-bit GHC 7.0.3: 29280 msg/sec (23.8 MB/sec)
6.4 KB, 32-bit GHC 6.12.3: 6684 msg/sec (42.0 MB/sec)
6.4 KB, 64-bit GHC 7.0.3: 5893 msg/sec (37.1 MB/sec)
11.8 KB, 32-bit GHC 6.12.3: 3610 msg/sec (41.5 MB/sec)
11.8 KB, 64-bit GHC 7.0.3: 3059 msg/sec (35.2 MB/sec)
31.2 KB, 32-bit GHC 6.12.3: 1306 msg/sec (39.8 MB/sec)
31.2 KB, 64-bit GHC 7.0.3: 1050 msg/sec (32.0 MB/sec)
61.5 KB, 32-bit GHC 6.12.3: 594 msg/sec (35.7 MB/sec)
61.5 KB, 64-bit GHC 7.0.3: 505 msg/sec (30.3 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, 32-bit GHC 6.12.3: 2257 msg/sec (32.2 MB/sec)
14.6 KB, 64-bit GHC 7.0.3: 1931 msg/sec (27.6 MB/sec)
44.1 KB, 32-bit GHC 6.12.3: 697 msg/sec (30.0 MB/sec)
44.1 KB, 64-bit GHC 7.0.3: 611 msg/sec (26.3 MB/sec)
82.9 KB, 32-bit GHC 6.12.3: 368 msg/sec (29.8 MB/sec)
82.9 KB, 64-bit GHC 7.0.3: 322 msg/sec (26.0 MB/sec)
Encoding performance on the same machine and data:
English, 854 bytes: 43439 msg/sec (35.4 MB/sec)
English, 6.4 KB: 7127 msg/sec (44.8 MB/sec)
Engish, 61.5 KB: 765 msg/sec (46.0 MB/sec)
Japanese, 14.6 KB: 4727 msg/sec (67.5 MB/sec)
Japanese, 44.1 KB: 1505 msg/sec (64.8 MB/sec)
(A note on naming: in Greek mythology, Aeson was the father of Jason.)
[Skip to Readme]
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
developer | operate in developer mode | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- aeson-0.3.2.6.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
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'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates