forked from haskell/aeson
-
Notifications
You must be signed in to change notification settings - Fork 0
/
aeson.cabal
137 lines (126 loc) · 3.7 KB
/
aeson.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: aeson
version: 0.3.2.4
license: BSD3
license-file: LICENSE
category: Text, Web, JSON
copyright: Copyright 2011 MailRank, Inc.
author: Bryan O'Sullivan <bos@mailrank.com>
maintainer: Bryan O'Sullivan <bos@mailrank.com>
stability: experimental
tested-with: GHC == 6.12.3
synopsis: Fast JSON parsing and generation
cabal-version: >= 1.8
homepage: http://github.com/mailrank/aeson
bug-reports: http://github.com/mailrank/aeson/issues
build-type: Simple
description:
A JSON parsing and generation library optimized for ease of use
and high performance.
.
Parsing performance with GHC 6.12.3 on a late 2010 MacBook Pro
(2.66GHz Core i7), for mostly-English tweets from Twitter's JSON
search API:
.
* English, 854 bytes: 29029 msg\/sec (23.6 MB/sec)
.
* English, 6.4 KB: 6407 msg\/sec (40.3 MB/sec)
.
* English, 31.2 KB: 1265 msg\/sec (38.8 MB/sec)
.
* English, 61.5 KB: 585 msg\/sec (35.2 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:
.
* Japanese, 14.6 KB: 2227 msg\/sec (31.9 MB/sec)
.
* Japanese, 44.1 KB: 671 msg\/sec (29.6 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)
.
With GHC 7.0.2, the story is mixed: parsing is 20-40% slower than
GHC 6.12.3, while encoding performance ranges from about the same
to twice as fast (on numeric data).
.
(A note on naming: in Greek mythology, Aeson was the father of Jason.)
extra-source-files:
README.markdown
benchmarks/AesonEncode.hs
benchmarks/AesonParse.hs
benchmarks/JsonParse.hs
benchmarks/Makefile
benchmarks/ReadFile.hs
benchmarks/parse.py
benchmarks/json-data/example.json
benchmarks/json-data/integers.json
benchmarks/json-data/jp10.json
benchmarks/json-data/jp20.json
benchmarks/json-data/jp50.json
benchmarks/json-data/jp100.json
benchmarks/json-data/numbers.json
benchmarks/json-data/twitter1.json
benchmarks/json-data/twitter10.json
benchmarks/json-data/twitter20.json
benchmarks/json-data/twitter50.json
benchmarks/json-data/twitter100.json
tests/Makefile
tests/Properties.hs
flag developer
description: operate in developer mode
default: False
library
exposed-modules:
Data.Aeson
Data.Aeson.Encode
Data.Aeson.Generic
Data.Aeson.Parser
Data.Aeson.Types
other-modules:
Data.Aeson.Encode.Double
Data.Aeson.Encode.Int
Data.Aeson.Encode.Number
Data.Aeson.Functions
build-depends:
attoparsec >= 0.8.5.3,
base == 4.*,
blaze-builder >= 0.2.1.4,
bytestring,
containers,
deepseq,
ghc-prim,
hashable,
integer-gmp,
mtl,
old-locale,
syb,
text >= 0.11.0.2,
time,
unordered-containers >= 0.1.2.0,
vector >= 0.7
if flag(developer)
ghc-options: -Werror
ghc-prof-options: -auto-all
ghc-options: -Wall
if impl(ghc >= 6.11)
cpp-options: -DINTEGER_GMP
build-depends: integer-gmp >= 0.2 && < 0.3
if impl(ghc >= 6.9) && impl(ghc < 6.11)
cpp-options: -DINTEGER_GMP
build-depends: integer >= 0.1 && < 0.2
source-repository head
type: git
location: http://github.com/mailrank/aeson
source-repository head
type: mercurial
location: http://bitbucket.org/bos/aeson