packages feed

hw-kafka-client-5.0.0: hw-kafka-client.cabal

cabal-version: 2.2

name:                   hw-kafka-client
version:                5.0.0
synopsis:               Kafka bindings for Haskell
description:            Apache Kafka bindings backed by the librdkafka C library.
                        .
                        Features include:
                        .
                        * Consumer groups: auto-rebalancing consumers
                        .
                        * Keyed and keyless messages producing/consuming
                        .
                        * Batch producing messages
category:               Database
homepage:               https://github.com/haskell-works/hw-kafka-client
bug-reports:            https://github.com/haskell-works/hw-kafka-client/issues
author:                 Alexey Raga <alexey.raga@gmail.com>
maintainer:             Alexey Raga <alexey.raga@gmail.com>
license:                MIT
license-file:           LICENSE
tested-with:            GHC == 8.10.2, GHC == 8.8.3, GHC == 8.6.5, GHC == 8.4.4
build-type:             Simple
extra-source-files:     README.md

source-repository head
  type: git
  location: git://github.com/haskell-works/hw-kafka-client.git

flag examples
  description: Also compile examples
  manual: True
  default: False

flag it
  description: Run integration tests
  manual: True
  default: False

library
  hs-source-dirs:       src
  ghc-options:          -Wall
                        -Wcompat
                        -Wincomplete-record-updates
                        -Wincomplete-uni-patterns
                        -Wredundant-constraints
  extra-libraries:      rdkafka
  build-depends:        base >=4.6 && <5
                      , bifunctors
                      , bytestring
                      , containers
                      , text
                      , transformers
                      , unix
  build-tool-depends:   c2hs:c2hs
  if impl(ghc <8.0)
    build-depends:      semigroups
  exposed-modules:      Kafka.Consumer
                        Kafka.Consumer.ConsumerProperties
                        Kafka.Consumer.Subscription
                        Kafka.Consumer.Types
                        Kafka.Dump
                        Kafka.Metadata
                        Kafka.Producer
                        Kafka.Producer.ProducerProperties
                        Kafka.Producer.Types
                        Kafka.Types
  other-modules:        Kafka.Callbacks
                        Kafka.Consumer.Callbacks
                        Kafka.Consumer.Convert
                        Kafka.Internal.RdKafka
                        Kafka.Internal.Setup
                        Kafka.Internal.Shared
                        Kafka.Producer.Callbacks
                        Kafka.Producer.Convert
  default-language:     Haskell2010

executable kafka-client-example
  main-is:              Main.hs
  hs-source-dirs:       example
  ghc-options:          -threaded -rtsopts
  build-depends:        base >=4.6 && <5
                      , bytestring
                      , hw-kafka-client
                      , text
  if !(flag(examples))
    buildable:          False
  other-modules:
                        ConsumerExample
                        ProducerExample
  default-language:     Haskell2010

test-suite integration-tests
  type:                 exitcode-stdio-1.0
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  main-is:              Spec.hs
  hs-source-dirs:       tests-it
  ghc-options:          -Wall -threaded
  build-depends:        base >=4.6 && <5
                      , bifunctors
                      , bytestring
                      , containers
                      , either
                      , hspec
                      , hw-kafka-client
                      , monad-loops
                      , random
                      , text
                      , transformers
  build-tool-depends:   hspec-discover:hspec-discover
  if !(flag(it))
    buildable:          False
  other-modules:        Kafka.IntegrationSpec
                        Kafka.TestEnv
  default-language:     Haskell2010

test-suite tests
  type:                 exitcode-stdio-1.0
  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
  main-is:              Spec.hs
  hs-source-dirs:       tests
  ghc-options:          -Wall -threaded
  build-depends:        base >=4.6 && <5
                      , bifunctors
                      , bytestring
                      , containers
                      , either
                      , hspec
                      , hw-kafka-client
                      , text
                      , monad-loops
  build-tool-depends:   hspec-discover:hspec-discover
  other-modules:        Kafka.Consumer.ConsumerRecordMapSpec
                        Kafka.Consumer.ConsumerRecordTraverseSpec
  default-language:     Haskell2010