1name:            aeson
2version:         1.4.7.1
3x-revision: 2
4license:         BSD3
5license-file:    LICENSE
6category:        Text, Web, JSON
7copyright:       (c) 2011-2016 Bryan O'Sullivan
8                 (c) 2011 MailRank, Inc.
9author:          Bryan O'Sullivan <bos@serpentine.com>
10maintainer:      Adam Bergmark <adam@bergmark.nl>
11stability:       experimental
12tested-with:     GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
13synopsis:        Fast JSON parsing and encoding
14cabal-version:   >= 1.10
15homepage:        https://github.com/bos/aeson
16bug-reports:     https://github.com/bos/aeson/issues
17build-type:      Simple
18description:
19    A JSON parsing and encoding library optimized for ease of use
20    and high performance.
21    .
22    To get started, see the documentation for the @Data.Aeson@ module
23    below.
24    .
25    (A note on naming: in Greek mythology, Aeson was the father of Jason.)
26
27extra-source-files:
28    *.yaml
29    README.markdown
30    benchmarks/*.cabal
31    benchmarks/*.hs
32    benchmarks/*.py
33    benchmarks/Compare/*.hs
34    benchmarks/Makefile
35    benchmarks/Typed/*.hs
36    benchmarks/json-data/*.json
37    cbits/*.c
38    changelog.md
39    examples/*.cabal
40    examples/*.hs
41    examples/Twitter/*.hs
42    ffi/Data/Aeson/Parser/*.hs
43    include/*.h
44    tests/JSONTestSuite/test_parsing/*.json
45    tests/JSONTestSuite/test_transform/*.json
46    tests/golden/*.expected
47    pure/Data/Aeson/Parser/*.hs
48
49flag developer
50  description: operate in developer mode
51  default: False
52  manual: True
53
54flag fast
55  description: compile without optimizations
56  default: False
57  manual: True
58
59flag bytestring-builder
60  description: Depend on the bytestring-builder package for backwards compatibility.
61  default: False
62  manual: False
63
64flag cffi
65  description: Controls whether to include c-ffi bits or pure haskell. Default to False for security.
66  default: False
67  manual: True
68
69library
70  default-language: Haskell2010
71  hs-source-dirs: . attoparsec-iso8601/
72
73  exposed-modules:
74    Data.Aeson
75    Data.Aeson.Encoding
76    Data.Aeson.Parser
77    Data.Aeson.Text
78    Data.Aeson.Types
79    Data.Aeson.TH
80    Data.Aeson.QQ.Simple
81
82    Data.Aeson.Encoding.Internal
83    Data.Aeson.Internal
84    Data.Aeson.Internal.Time
85    Data.Aeson.Parser.Internal
86
87  -- Deprecated modules
88  exposed-modules:
89    Data.Aeson.Encode
90
91  other-modules:
92    Data.Aeson.Encoding.Builder
93    Data.Aeson.Internal.Functions
94    Data.Aeson.Parser.Unescape
95    Data.Aeson.Parser.Time
96    Data.Aeson.Types.FromJSON
97    Data.Aeson.Types.Generic
98    Data.Aeson.Types.ToJSON
99    Data.Aeson.Types.Class
100    Data.Aeson.Types.Internal
101    Data.Attoparsec.Time
102    Data.Attoparsec.Time.Internal
103
104  -- GHC bundled libs
105  build-depends:
106    base             >= 4.7.0.0 && < 5,
107    bytestring       >= 0.10.4.0 && < 0.11,
108    containers       >= 0.5.5.1 && < 0.7,
109    deepseq          >= 1.3.0.0 && < 1.5,
110    ghc-prim         >= 0.2     && < 0.7,
111    template-haskell >= 2.9.0.0 && < 2.17,
112    text             >= 1.2.3.0 && < 1.3,
113    time             >= 1.4     && < 1.11
114
115  if impl(ghc >= 8.0)
116    build-depends: bytestring >= 0.10.8.1
117
118  -- Compat
119  build-depends:
120    base-compat-batteries >= 0.10.0   && < 0.13,
121    time-compat           >= 1.9.2.2  && < 1.10
122
123  if !impl(ghc >= 8.6)
124    build-depends:
125      contravariant >=1.4.1    && <1.6
126
127  if !impl(ghc >= 8.0)
128    -- `Data.Semigroup` and `Control.Monad.Fail` and `Control.Monad.IO.Class` are available in base only since GHC 8.0 / base 4.9
129    build-depends:
130      semigroups          >= 0.18.5  && < 0.20,
131      transformers        >= 0.3.0.0 && < 0.6,
132      transformers-compat >= 0.6.2   && < 0.8,
133      fail == 4.9.*
134
135  if !impl(ghc >= 7.10)
136    -- `Numeric.Natural` is available in base only since GHC 7.10 / base 4.8
137    build-depends: nats >= 1.1.1 && < 1.2,
138                   void >= 0.7.2 && < 0.8
139
140  -- cannot use latest version
141  build-depends:
142    unordered-containers >= 0.2.8.0  && < 0.3,
143
144    -- not in LTS-12.10
145    tagged               >= 0.8.5    && < 0.9,
146    primitive            >= 0.6.3.0  && < 0.8
147
148  -- Other dependencies
149  build-depends:
150    attoparsec           >= 0.13.2.2 && < 0.15,
151    dlist                >= 0.8.0.4  && < 0.9,
152    hashable             >= 1.2.7.0  && < 1.4,
153    scientific           >= 0.3.6.2  && < 0.4,
154    th-abstraction       >= 0.2.8.0  && < 0.4,
155    uuid-types           >= 1.0.3    && < 1.1,
156    vector               >= 0.12.0.1 && < 0.13
157
158  ghc-options: -Wall
159
160  if flag(developer)
161    ghc-options: -Werror
162    ghc-prof-options: -auto-all
163
164  if flag(fast)
165    ghc-options: -O0
166  else
167    ghc-options: -O2
168
169  include-dirs: include
170  if impl(ghcjs) || !flag(cffi)
171    hs-source-dirs: pure
172    other-modules: Data.Aeson.Parser.UnescapePure
173  else
174    c-sources: cbits/unescape_string.c
175    cpp-options: -DCFFI
176    hs-source-dirs: ffi
177    other-modules: Data.Aeson.Parser.UnescapeFFI
178
179test-suite tests
180  default-language: Haskell2010
181  type: exitcode-stdio-1.0
182  hs-source-dirs: tests ffi pure
183  main-is: Tests.hs
184  c-sources: cbits/unescape_string.c
185  ghc-options: -Wall -threaded -rtsopts
186
187  other-modules:
188    Data.Aeson.Parser.UnescapeFFI
189    Data.Aeson.Parser.UnescapePure
190    DataFamilies.Properties
191    DataFamilies.Instances
192    DataFamilies.Encoders
193    DataFamilies.Types
194    Encoders
195    ErrorMessages
196    Functions
197    Instances
198    Options
199    PropUtils
200    Properties
201    PropertyGeneric
202    PropertyKeys
203    PropertyRoundTrip
204    PropertyRTFunctors
205    PropertyTH
206    SerializationFormatSpec
207    Types
208    UnitTests
209    UnitTests.NullaryConstructors
210
211  build-depends:
212    QuickCheck >= 2.10.0.1 && < 2.14,
213    aeson,
214    integer-logarithms >= 1 && <1.1,
215    attoparsec,
216    base,
217    base-compat,
218    base-orphans >= 0.5.3 && <0.9,
219    base16-bytestring,
220    containers,
221    directory,
222    dlist,
223    Diff >= 0.4 && < 0.5,
224    filepath,
225    generic-deriving >= 1.10 && < 1.14,
226    ghc-prim >= 0.2,
227    hashable >= 1.2.4.0,
228    scientific,
229    tagged,
230    template-haskell,
231    tasty,
232    tasty-golden,
233    tasty-hunit,
234    tasty-quickcheck,
235    text,
236    time,
237    time-compat,
238    unordered-containers,
239    uuid-types,
240    vector,
241    quickcheck-instances >= 0.3.21 && <0.4
242
243  if flag(bytestring-builder)
244    build-depends: bytestring >= 0.9 && < 0.10.4,
245                   bytestring-builder >= 0.10.4 && < 1
246  else
247    build-depends: bytestring >= 0.10.4
248
249  if !impl(ghc >= 8.0)
250    build-depends:
251      semigroups >= 0.18.2 && < 0.20,
252      transformers >= 0.2.2.0,
253      transformers-compat >= 0.3
254
255  if !impl(ghc >= 7.10)
256    build-depends: nats >=1 && <1.2,
257                   void >=0.7.2 && <0.8
258
259  if impl(ghc >= 7.8)
260    build-depends: hashable-time >= 0.2 && <0.3
261
262  if flag(fast)
263    ghc-options: -fno-enable-rewrite-rules
264
265source-repository head
266  type:     git
267  location: git://github.com/bos/aeson.git
268