forked from haskell/aeson
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaeson.cabal
187 lines (172 loc) · 4.85 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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
name: aeson
version: 0.6.2.0
license: BSD3
license-file: LICENSE
category: Text, Web, JSON
copyright: (c) 2011, 2012, 2013 Bryan O'Sullivan
(c) 2011 MailRank, Inc.
author: Bryan O'Sullivan <[email protected]>
maintainer: Bryan O'Sullivan <[email protected]>
stability: experimental
tested-with: GHC == 6.12.3, GHC == 7.0.4, GHC == 7.2.2
synopsis: Fast JSON parsing and encoding
cabal-version: >= 1.8
homepage: https://github.com/bos/aeson
bug-reports: https://github.com/bos/aeson/issues
build-type: Simple
description:
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.
.
For release notes, see
<https://github.com/bos/aeson/blob/master/release-notes.markdown>
.
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: 30538 msg\/sec (24.9 MB\/sec)
.
* 0.8 KB, 64-bit GHC 7.0.3: 31204 msg\/sec (25.4 MB\/sec)
.
* 6.4 KB, 32-bit GHC 6.12.3: 6731 msg\/sec (42.3 MB\/sec)
.
* 6.4 KB, 64-bit GHC 7.0.3: 6627 msg\/sec (41.7 MB\/sec)
.
* 11.8 KB, 32-bit GHC 6.12.3: 3751 msg\/sec (43.2 MB\/sec)
.
* 11.8 KB, 64-bit GHC 7.0.3: 3381 msg\/sec (38.9 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: 1132 msg\/sec (34.5 MB\/sec)
.
* 61.5 KB, 32-bit GHC 6.12.3: 616 msg\/sec (37.0 MB\/sec)
.
* 61.5 KB, 64-bit GHC 7.0.3: 534 msg\/sec (32.1 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: 2315 msg\/sec (33.1 MB\/sec)
.
* 14.6 KB, 64-bit GHC 7.0.3: 1986 msg\/sec (28.4 MB\/sec)
.
* 44.1 KB, 32-bit GHC 6.12.3: 712 msg\/sec (30.7 MB\/sec)
.
* 44.1 KB, 64-bit GHC 7.0.3: 634 msg\/sec (27.3 MB\/sec)
.
* 82.9 KB, 32-bit GHC 6.12.3: 377 msg\/sec (30.5 MB\/sec)
.
* 82.9 KB, 64-bit GHC 7.0.3: 332 msg\/sec (26.9 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.)
extra-source-files:
README.markdown
benchmarks/*.cabal
benchmarks/*.hs
benchmarks/*.py
benchmarks/Makefile
benchmarks/json-data/*.json
examples/*.hs
release-notes.markdown
flag developer
description: operate in developer mode
default: False
flag blaze-builder
description: Use blaze-builder instead of bytestring >= 0.10
default: False
library
exposed-modules:
Data.Aeson
Data.Aeson.Encode
Data.Aeson.Generic
Data.Aeson.Parser
Data.Aeson.Types
Data.Aeson.TH
other-modules:
Data.Aeson.Functions
Data.Aeson.Parser.Internal
Data.Aeson.Types.Class
Data.Aeson.Types.Internal
if impl(ghc >= 7.2.1)
cpp-options: -DGENERICS
build-depends: ghc-prim >= 0.2, dlist >= 0.2
other-modules:
Data.Aeson.Types.Generic
build-depends:
attoparsec >= 0.8.6.1,
base == 4.*,
bytestring,
containers,
deepseq,
hashable >= 1.1.2.0,
mtl,
old-locale,
syb,
template-haskell >= 2.4,
text >= 0.11.1.0,
time,
unordered-containers >= 0.1.3.0,
vector >= 0.7.1
if flag(blaze-builder)
build-depends: blaze-builder >= 0.2.1.4
cpp-options: -DUSE_BLAZE_BUILDER
else
build-depends: bytestring >= 0.10
if flag(developer)
ghc-options: -Werror
ghc-prof-options: -auto-all
ghc-options: -O2 -Wall
test-suite tests
type: exitcode-stdio-1.0
hs-source-dirs: tests
main-is: Properties.hs
other-modules: Functions
Instances
Types
Options
Encoders
Properties.Deprecated
ghc-options:
-Wall -threaded -rtsopts
if impl(ghc < 7.4)
ghc-options: -fcontext-stack=40
if impl(ghc >= 7.2)
cpp-options: -DGHC_GENERICS
build-depends:
QuickCheck,
aeson,
attoparsec,
base,
containers,
bytestring,
template-haskell,
test-framework,
test-framework-quickcheck2,
text,
time,
unordered-containers,
vector,
ghc-prim >= 0.2
source-repository head
type: git
location: git://github.com/bos/aeson.git
source-repository head
type: mercurial
location: https://bitbucket.org/bos/aeson