File: cborg.cabal

package info (click to toggle)
haskell-cborg 0.2.10.0-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 808 kB
  • sloc: haskell: 8,273; ansic: 14; makefile: 3
file content (174 lines) | stat: -rw-r--r-- 5,238 bytes parent folder | download
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
name:                cborg
version:             0.2.10.0
synopsis:            Concise Binary Object Representation (CBOR)
license:             BSD3
license-file:        LICENSE.txt
author:              Duncan Coutts
maintainer:          duncan@community.haskell.org, ben@smart-cactus.org
bug-reports:         https://github.com/well-typed/cborg/issues
copyright:           2015-2019 Duncan Coutts,
                     2015-2019 Well-Typed LLP,
                     2015 IRIS Connect Ltd
category:            Codec
build-type:          Simple
cabal-version:       >= 1.10
tested-with:
  GHC == 8.4.4,
  GHC == 8.6.5,
  GHC == 8.8.3,
  GHC == 8.10.7,
  GHC == 9.0.1,
  GHC == 9.2.2,
  GHC == 9.4.2,
  GHC == 9.6.1

extra-source-files:
  ChangeLog.md

description:
  This package provides an efficient implementation of the Concise
  Binary Object Representation (CBOR), as specified by
  [RFC 7049](https://tools.ietf.org/html/rfc7049).
  .
  If you are looking for a library for serialisation of Haskell values,
  have a look at the [serialise](/package/serialise) package, which is
  built upon this library.
  .
  An implementation of the standard bijection between CBOR and JSON is
  provided by the [cborg-json](/package/cborg-json) package. Also see
  [cbor-tool](/package/cbor-tool) for a convenient command-line utility
  for working with CBOR data.
  .
  This package was formerly known as @binary-serialise-cbor@.

extra-source-files:
  src/cbits/cbor.h
  tests/test-vectors/appendix_a.json
  tests/test-vectors/README.md

source-repository head
  type: git
  location: https://github.com/well-typed/cborg.git

--------------------------------------------------------------------------------
-- Flags

flag optimize-gmp
  default: True
  manual: False
  description: Use optimized code paths for integer-gmp

--------------------------------------------------------------------------------
-- Library

library
  default-language:  Haskell2010
  ghc-options:       -Wall
  include-dirs:      src/cbits
  hs-source-dirs:    src

  exposed-modules:
    Codec.CBOR
    Codec.CBOR.Decoding
    Codec.CBOR.Encoding
    Codec.CBOR.FlatTerm
    Codec.CBOR.Magic
    Codec.CBOR.Pretty
    Codec.CBOR.Read
    Codec.CBOR.Write
    Codec.CBOR.Term
    Codec.CBOR.ByteArray
    Codec.CBOR.ByteArray.Sliced

  other-modules:
    Codec.CBOR.ByteArray.Internal

  other-extensions:
    CPP, ForeignFunctionInterface, MagicHash,
    UnboxedTuples, BangPatterns, DeriveDataTypeable,
    RankNTypes

  build-depends:
    array                   >= 0.4     && < 0.6,
    base                    >= 4.11    && < 4.22,
    bytestring              >= 0.10.4  && < 0.13,
    containers              >= 0.5     && < 0.8,
    deepseq                 >= 1.0     && < 1.6,
    ghc-prim                >= 0.3.1.0 && < 0.14,
    half                    >= 0.2.2.3 && < 0.4,
    primitive               >= 0.5     && < 0.10,
    text                    >= 1.1     && < 1.3 || >= 2.0 && <2.2

  if !arch(x86_64) && impl(ghc <9.4)
    build-depends: ghc-prim

  if flag(optimize-gmp)
    cpp-options:            -DOPTIMIZE_GMP
    if impl(ghc >= 9.0)
      cpp-options:          -DHAVE_GHC_BIGNUM
      build-depends: ghc-bignum >= 1.0 && < 2.0
    else
      build-depends: integer-gmp >= 1.0 && < 2.0

  if impl(ghc >= 8.0)
    ghc-options: -Wcompat -Wnoncanonical-monad-instances
  else
    build-depends:
      -- provide/emulate `Control.Monad.Fail` and `Data.Semigroups` API for pre-GHC8
      fail                    == 4.9.*,
      semigroups              >= 0.18 && < 0.21,
      -- the `PS` pattern synonym in bytestring 0.11 is unavailable with GHC < 8.0
      bytestring              < 0.11

test-suite tests
  type:              exitcode-stdio-1.0
  hs-source-dirs:    tests
  main-is:           Main.hs

  default-language:  Haskell2010
  ghc-options:
    -Wall -fno-warn-orphans
    -threaded -rtsopts

  other-modules:
    Tests.UnitTests
    Tests.Properties
    Tests.Boundary
    Tests.ByteOffset
    Tests.Canonical
    Tests.PreEncoded
    Tests.Regress
    Tests.Regress.Issue160
    Tests.Regress.Issue162
    Tests.Regress.FlatTerm
    Tests.Reference
    Tests.Reference.Implementation
    Tests.Reference.Generators
    Tests.Reference.TestVectors
    Tests.Term
    Tests.UTF8
    Tests.Util

  build-depends:
    array                   >= 0.4     && < 0.6,
    base                    >= 4.11    && < 4.22,
    base-orphans,
    bytestring              >= 0.10.4  && < 0.13,
    text                    >= 1.1     && < 2.2,
    primitive               >= 0.5     && < 0.10,
    cborg,
    aeson                   >= 0.7     && < 2.3,
    base64-bytestring       >= 1.0     && < 1.3,
    base16-bytestring       >= 1.0     && < 1.1,
    deepseq                 >= 1.0     && < 1.6,
    half                    >= 0.2.2.3 && < 0.4,
    QuickCheck              >= 2.9     && < 2.17,
    random,
    scientific              >= 0.3     && < 0.4,
    tasty                   >= 0.11    && < 1.6,
    tasty-hunit             >= 0.9     && < 0.11,
    tasty-quickcheck        >= 0.8     && < 0.12,
    vector                  >= 0.10    && < 0.14
  if !impl(ghc >= 8.0)
    build-depends:
      fail                    >= 4.9.0.0 && < 4.10