packages feed

kafka-effectful-0.3.1.0: kafka-effectful.cabal

cabal-version: 3.4
name: kafka-effectful
version: 0.3.1.0
synopsis: Effectful effects for hw-kafka-client
description:
  Effectful effects and interpreters for hw-kafka-client, a Haskell
  binding to Apache Kafka via librdkafka. Provides typed, composable
  KafkaProducer and KafkaConsumer effects.

license: MIT
license-file: LICENSE
author: Nadeem Bitar
maintainer: Nadeem Bitar
category: Network, Messaging
build-type: Simple
extra-doc-files:
  CHANGELOG.md
  README.md

source-repository head
  type: git
  location: https://github.com/shinzui/kafka-effectful.git

flag examples
  description: Build example executables
  manual: True
  default: False

common warnings
  ghc-options:
    -Wall
    -Wcompat
    -Widentities
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wredundant-constraints
    -fhide-source-paths
    -Wmissing-export-lists
    -Wpartial-fields
    -Wmissing-deriving-strategies

library
  import: warnings
  exposed-modules:
    Kafka.Effectful
    Kafka.Effectful.Consumer
    Kafka.Effectful.Consumer.Classify
    Kafka.Effectful.Consumer.Effect
    Kafka.Effectful.Consumer.Interpreter
    Kafka.Effectful.OpenTelemetry
    Kafka.Effectful.OpenTelemetry.Consumer.Interpreter
    Kafka.Effectful.OpenTelemetry.Producer.Interpreter
    Kafka.Effectful.OpenTelemetry.Propagation
    Kafka.Effectful.OpenTelemetry.Semantic
    Kafka.Effectful.Producer
    Kafka.Effectful.Producer.Effect
    Kafka.Effectful.Producer.Interpreter
    Kafka.Effectful.Producer.Transaction

  build-depends:
    base >=4.21 && <5,
    bytestring >=0.11 && <0.13,
    case-insensitive >=1.2 && <1.3,
    containers >=0.6 && <0.8,
    effectful-core >=2.5 && <2.8,
    hs-opentelemetry-api ^>=1.0,
    hs-opentelemetry-semantic-conventions >=1.40 && <2,
    http-types >=0.12 && <0.13,
    hw-kafka-client >=5.3 && <6,
    text >=2.0 && <2.2,
    unliftio-core >=0.2 && <0.3,
    unordered-containers >=0.2 && <0.3,

  hs-source-dirs: src
  default-language: GHC2024
  default-extensions:
    DataKinds
    DuplicateRecordFields
    GADTs
    GeneralisedNewtypeDeriving
    ImportQualifiedPost
    LambdaCase
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings
    TypeFamilies
    TypeOperators

executable example-sync-publish
  import: warnings
  main-is: SyncPublish.hs
  hs-source-dirs: examples
  default-language: GHC2024
  default-extensions:
    ImportQualifiedPost
    LambdaCase
    OverloadedStrings
    TypeApplications

  if !flag(examples)
    buildable: False
  build-depends:
    base >=4.21 && <5,
    bytestring >=0.11 && <0.13,
    effectful-core >=2.5 && <2.8,
    hw-kafka-client >=5.3 && <6,
    kafka-effectful,

executable example-transactional-etl
  import: warnings
  main-is: TransactionalEtl.hs
  hs-source-dirs: examples
  default-language: GHC2024
  default-extensions:
    ImportQualifiedPost
    LambdaCase
    OverloadedStrings
    TypeApplications

  if !flag(examples)
    buildable: False
  build-depends:
    base >=4.21 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.6 && <0.8,
    effectful-core >=2.5 && <2.8,
    hw-kafka-client >=5.3 && <6,
    kafka-effectful,

executable example-otel-tracing
  import: warnings
  main-is: OtelTracing.hs
  hs-source-dirs: examples
  -- The hs-opentelemetry batch span processor requires the threaded
  -- runtime; without it, initializeGlobalTracerProvider raises at
  -- runtime.
  ghc-options: -threaded
  default-language: GHC2024
  default-extensions:
    DuplicateRecordFields
    ImportQualifiedPost
    LambdaCase
    NoFieldSelectors
    OverloadedRecordDot
    OverloadedStrings
    TypeApplications

  if !flag(examples)
    buildable: False
  build-depends:
    base >=4.21 && <5,
    bytestring >=0.11 && <0.13,
    effectful-core >=2.5 && <2.8,
    hs-opentelemetry-api ^>=1.0,
    hs-opentelemetry-exporter-otlp ^>=1.0,
    hs-opentelemetry-sdk ^>=1.0,
    hw-kafka-client >=5.3 && <6,
    kafka-effectful,
    text >=2.0 && <2.2,

test-suite kafka-effectful-test
  import: warnings
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs: test
  -- The hs-opentelemetry batch span processor requires the threaded
  -- runtime. Without -threaded, even initializing the global tracer
  -- provider in PropagationTest's withResource block raises an
  -- exception at runtime.
  ghc-options: -threaded
  default-language: GHC2024
  default-extensions:
    DataKinds
    DuplicateRecordFields
    GADTs
    ImportQualifiedPost
    LambdaCase
    OverloadedRecordDot
    OverloadedStrings
    TypeApplications
    TypeOperators

  other-modules:
    Kafka.Effectful.Consumer.ClassifyTest
    Kafka.Effectful.Consumer.InterpreterTest
    Kafka.Effectful.OpenTelemetry.ConsumerSpanTest
    Kafka.Effectful.OpenTelemetry.PropagationTest
    Kafka.Effectful.OpenTelemetry.SemanticTest
    Kafka.Effectful.OpenTelemetry.ShibuyaCompatibilityTest

  build-depends:
    base >=4.21 && <5,
    bytestring >=0.11 && <0.13,
    case-insensitive >=1.2 && <1.3,
    containers >=0.6 && <0.8,
    effectful-core >=2.5 && <2.8,
    hs-opentelemetry-api ^>=1.0,
    hs-opentelemetry-exporter-in-memory ^>=1.0,
    hs-opentelemetry-sdk ^>=1.0,
    hs-opentelemetry-semantic-conventions >=1.40 && <2,
    http-types >=0.12 && <0.13,
    hw-kafka-client >=5.3 && <6,
    kafka-effectful,
    tasty ^>=1.5,
    tasty-hunit ^>=0.10,
    text >=2.0 && <2.2,
    unordered-containers >=0.2 && <0.3,