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