packages feed

avro-0.6.2.1: avro.cabal

cabal-version: 2.4

name:                   avro
version:                0.6.2.1
synopsis:               Avro serialization support for Haskell
description:            Avro serialization and deserialization support for Haskell
category:               Data
homepage:               https://github.com/haskell-works/avro#readme
bug-reports:            https://github.com/haskell-works/avro/issues
author:                 Thomas M. DuBuisson
maintainer:             Alexey Raga <alexey.raga@gmail.com>
license:                BSD-3-Clause
license-file:           LICENSE
tested-with:            GHC == 9.10.1, GHC == 9.8.2, GHC == 9.6.6
build-type:             Simple
extra-source-files:     README.md
                        ChangeLog.md
                        test/data/enums.avsc
                        test/data/internal-bindings.avsc
                        test/data/karma.avsc
                        test/data/logical.avsc
                        test/data/maybe.avsc
                        test/data/record.avsc
                        test/data/reused.avsc
                        test/data/small.avsc
                        test/data/unions-no-namespace.avsc
                        test/data/unions.avsc
                        test/data/enums-object.json
                        test/data/namespace-inference.json
                        test/data/null-namespace.json
                        test/data/unions-object-a.json
                        test/data/unions-object-b.json
                        test/data/overlay/composite.avsc
                        test/data/overlay/expectation.avsc
                        test/data/overlay/primitives.avsc
                        test/data/fixed-types.avsc

source-repository head
  type: git
  location: https://github.com/haskell-works/avro

flag dev
  description: Use development GHC flags
  manual: True
  default: False

common base                     { build-depends: base                     >= 4          && < 5                      }

common aeson                    { build-depends: aeson                    >= 2.0.1.0                                }
common array                    { build-depends: array                                                              }
common base16-bytestring        { build-depends: base16-bytestring                                                  }
common bifunctors               { build-depends: bifunctors                                                         }
common big-decimal              { build-depends: HasBigDecimal            >= 0.2        && < 0.3                    }
common binary                   { build-depends: binary                                                             }
common bytestring               { build-depends: bytestring                                                         }
common containers               { build-depends: containers                                                         }
common data-binary-ieee754      { build-depends: data-binary-ieee754                                                }
common deepseq                  { build-depends: deepseq                                                            }
common directory                { build-depends: directory                                                          }
common doctest                  { build-depends: doctest                  >= 0.16.2     && < 0.23                   }
common doctest-discover         { build-depends: doctest-discover         >= 0.2        && < 0.3                    }
common extra                    { build-depends: extra                                                              }
common fail                     { build-depends: fail                                                               }
common generic-lens             { build-depends: generic-lens             >= 1.2        && < 2.3                    }
common hashable                 { build-depends: hashable                                                           }
common hedgehog                 { build-depends: hedgehog                                                           }
common hw-hspec-hedgehog        { build-depends: hw-hspec-hedgehog                                                  }
common hspec                    { build-depends: hspec                                                              }
common lens                     { build-depends: lens                                                               }
common lens-aeson               { build-depends: lens-aeson                                                         }
common mtl                      { build-depends: mtl                                                                }
common QuickCheck               { build-depends: QuickCheck                                                         }
common random                   { build-depends: random                                                             }
common raw-strings-qq           { build-depends: raw-strings-qq                                                     }
common scientific               { build-depends: scientific                                                         }
common semigroups               { build-depends: semigroups                                                         }
common tagged                   { build-depends: tagged                                                             }
common text                     { build-depends: text                     >= 1.2.3      && < 1.3 || >= 2.0 && < 2.2 }
common time                     { build-depends: time                                                               }
common template-haskell         { build-depends: template-haskell         >= 2.4        && < 3                      }
common tf-random                { build-depends: tf-random                                                          }
common th-lift-instances        { build-depends: th-lift-instances                                                  }
common transformers             { build-depends: transformers             >= 0.5.6.2    && < 0.7                    }
common unordered-containers     { build-depends: unordered-containers                                               }
common uuid                     { build-depends: uuid                                                               }
common vector                   { build-depends: vector                                                             }
common zlib                     { build-depends: zlib                                                               }

common gauge                    { build-depends: criterion                                                          }

common config
  default-language:     Haskell2010
  ghc-options:          -Wall

  if flag(dev)
    ghc-options:        -Wall -Werror

library
  import:               base
                      , aeson
                      , array
                      , base16-bytestring
                      , bifunctors
                      , big-decimal
                      , binary
                      , bytestring
                      , containers
                      , config
                      , data-binary-ieee754
                      , deepseq
                      , fail
                      , hashable
                      , mtl
                      , scientific
                      , semigroups
                      , tagged
                      , text
                      , time
                      , tf-random
                      , th-lift-instances
                      , unordered-containers
                      , uuid
                      , vector
                      , zlib
                      , template-haskell
                      , raw-strings-qq
  exposed-modules:      Data.Avro
                        Data.Avro.Codec
                        Data.Avro.Deriving
                        Data.Avro.Deriving.Lift
                        Data.Avro.Deriving.NormSchema
                        Data.Avro.EitherN
                        Data.Avro.Encoding.FromAvro
                        Data.Avro.Encoding.ToAvro
                        Data.Avro.HasAvroSchema
                        Data.Avro.Internal.Container
                        Data.Avro.Internal.DecodeRaw
                        Data.Avro.Internal.EncodeRaw
                        Data.Avro.Internal.Get
                        Data.Avro.Internal.Time
                        Data.Avro.Internal.Zag
                        Data.Avro.Internal.Zig
                        Data.Avro.JSON
                        Data.Avro.Schema.Decimal
                        Data.Avro.Schema.Deconflict
                        Data.Avro.Schema.ReadSchema
                        Data.Avro.Schema.Schema
  other-modules:
  hs-source-dirs:       src
  other-extensions:     OverloadedStrings

test-suite test
  import:               base
                      , aeson
                      , array
                      , base16-bytestring
                      , bifunctors
                      , big-decimal
                      , binary
                      , bytestring
                      , containers
                      , directory
                      , extra
                      , fail
                      , generic-lens
                      , hashable
                      , hedgehog
                      , hw-hspec-hedgehog
                      , hspec
                      , lens
                      , lens-aeson
                      , mtl
                      , QuickCheck
                      , raw-strings-qq
                      , scientific
                      , semigroups
                      , tagged
                      , text
                      , tf-random
                      , time
                      , transformers
                      , unordered-containers
                      , uuid
                      , vector
                      , zlib
  build-depends: avro
  type:                 exitcode-stdio-1.0
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  default-language:     Haskell2010
  main-is:              Spec.hs
  build-tool-depends:   hspec-discover:hspec-discover
  other-modules:
                        Avro.Codec.ArraySpec
                        Avro.Codec.BoolSpec
                        Avro.Codec.CodecRawSpec
                        Avro.Codec.DoubleSpec
                        Avro.Codec.FloatSpec
                        Avro.Codec.Int64Spec
                        Avro.Codec.MaybeSpec
                        Avro.Codec.NestedSpec
                        Avro.Codec.NullSpec
                        Avro.Codec.TextSpec
                        Avro.Codec.ZigZagSpec
                        Avro.Data.Deconflict.Read
                        Avro.Data.Deconflict.Write
                        Avro.Data.Endpoint
                        Avro.Data.Enums
                        Avro.Data.FixedTypes
                        Avro.Data.Karma
                        Avro.Data.Logical
                        Avro.Data.Maybe
                        Avro.Data.Recursive
                        Avro.Data.Reused
                        Avro.Data.TwoBits
                        Avro.Data.Unions
                        Avro.Decode.ContainerSpec
                        Avro.Decode.RawBlocksSpec
                        Avro.Decode.RawValuesSpec
                        Avro.Deconflict.A.Reader
                        Avro.Deconflict.A.Writer
                        Avro.Deconflict.B.Reader
                        Avro.Deconflict.B.Writer
                        Avro.Deconflict.C.Reader
                        Avro.Deconflict.C.Writer
                        Avro.Deconflict.D.Reader
                        Avro.Deconflict.D.Writer
                        Avro.Deconflict.Unions.Reader
                        Avro.Deconflict.Unions.Writer
                        Avro.DefaultsSpec
                        Avro.EncodeRawSpec
                        Avro.Encoding.ContainerSpec
                        Avro.Encoding.DeconflictSpec
                        Avro.Encoding.LogicalTypesSpec
                        Avro.Gen.Schema
                        Avro.JSONSpec
                        Avro.ManualSpec
                        Avro.NamespaceSpec
                        Avro.NormSchemaSpec
                        Avro.RecursiveSpec
                        Avro.ReuseFixedSpec
                        Avro.SchemaSpec
                        Avro.TestUtils
                        Avro.THEnumSpec
                        Avro.THReusedSpec
                        Avro.ToAvroSpec
                        Paths_avro
  autogen-modules:      Paths_avro
  hs-source-dirs:       test

benchmark bench-time
  import:               base, config
                      , aeson
                      , binary
                      , bytestring
                      , containers
                      , deepseq
                      , gauge
                      , hashable
                      , mtl
                      , random
                      , raw-strings-qq
                      , text
                      , transformers
                      , unordered-containers
                      , vector
  build-depends: avro
  default-language:     Haskell2010
  type:                 exitcode-stdio-1.0
  main-is:              Main.hs
  other-modules:        Bench.Deconflict
                        Bench.Deconflict.Reader
                        Bench.Deconflict.Writer
                        Bench.Encoding
  hs-source-dirs:       bench

test-suite doctest
  import:               base, config
                      , doctest
                      , bytestring
                      , doctest-discover
                      , zlib
  build-depends: avro
  type:                 exitcode-stdio-1.0
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  main-is:              DoctestDriver.hs
  HS-Source-Dirs:       doctest
  build-tool-depends:   doctest-discover:doctest-discover