packages feed

keiro-pgmq-0.3.0.0: keiro-pgmq.cabal

cabal-version:   3.0
name:            keiro-pgmq
version:         0.3.0.0
synopsis:        PostgreSQL job-queue (PGMQ) integration for Keiro
description:
  A typed background-job queue for Keiro applications on top of PGMQ (the
  PostgreSQL-native message queue) and shibuya (a Broadway-style worker
  framework). Declare a @Job@ value bundling a queue, a payload codec, and a
  retry/dead-letter policy, then write a plain domain handler of type
  @p -> Eff es JobOutcome@.

license:         BSD-3-Clause
author:          Nadeem Bitar
maintainer:      nadeem@gmail.com
copyright:       2026 Nadeem Bitar
category:        Control
homepage:        https://github.com/shinzui/keiro#readme
bug-reports:     https://github.com/shinzui/keiro/issues
build-type:      Simple
tested-with:     GHC >=9.12 && <9.13
extra-doc-files: CHANGELOG.md

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

common warnings
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints

common shared
  default-language:   GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    MultilineStrings
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    PackageImports

library
  import:          warnings, shared
  exposed-modules:
    Keiro.PGMQ
    Keiro.PGMQ.Codec
    Keiro.PGMQ.Dlq
    Keiro.PGMQ.Job
    Keiro.PGMQ.Metrics
    Keiro.PGMQ.Runtime

  hs-source-dirs:  src
  build-depends:
    , aeson                 >=2.2
    , base                  >=4.21     && <5
    , effectful-core        >=2.6
    , hasql                 >=1.10
    , hasql-pool            >=1.2
    , hs-opentelemetry-api  >=1.0      && <1.1
    , keiro-core            ^>=0.3.0.0
    , pgmq-config           >=0.4      && <0.5
    , pgmq-core             >=0.4      && <0.5
    , pgmq-effectful        >=0.4      && <0.5
    , pgmq-hasql            >=0.4      && <0.5
    , shibuya-core          >=0.8.0.1  && <0.9
    , shibuya-pgmq-adapter  >=0.12     && <0.13
    , streamly-core         >=0.3
    , text                  >=2.1
    , time                  >=1.12

test-suite keiro-pgmq-test
  import:         warnings, shared
  type:           exitcode-stdio-1.0
  hs-source-dirs: test
  main-is:        Main.hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N
  build-depends:
    , aeson                            >=2.2
    , base                             >=4.21     && <5
    , effectful-core                   >=2.6
    , hasql                            >=1.10
    , hasql-pool                       >=1.2
    , hs-opentelemetry-api             >=1.0      && <1.1
    , hs-opentelemetry-propagator-w3c  >=1.0      && <1.1
    , hs-opentelemetry-sdk             >=1.0      && <1.1
    , hspec                            >=2.11
    , keiro-core                       ^>=0.3.0.0
    , keiro-pgmq
    , keiro-test-support
    , pgmq-config                      >=0.4      && <0.5
    , pgmq-core                        >=0.4      && <0.5
    , pgmq-effectful                   >=0.4      && <0.5
    , pgmq-migration                   >=0.4      && <0.5
    , shibuya-core                     >=0.8.0.1  && <0.9
    , shibuya-pgmq-adapter             >=0.12     && <0.13
    , text                             >=2.1