packages feed

shibuya-core-0.11.0.0: shibuya-core.cabal

cabal-version: 3.12
name: shibuya-core
version: 0.11.0.0
synopsis: Supervised queue processing framework for Haskell
description:
  A supervised queue processing framework inspired by Broadway (Elixir).
  Provides unified queue abstraction, NQE-based supervision, backpressure
  via bounded inbox, explicit ack semantics, and OpenTelemetry tracing.

author: Nadeem Bitar
maintainer: nadeem@gmail.com
license: MIT
build-type: Simple
category: Concurrency
extra-doc-files: CHANGELOG.md

common warnings
  ghc-options: -Wall

library
  import: warnings
  exposed-modules:
    Shibuya
    Shibuya.Adapter
    Shibuya.Adapter.Mock
    Shibuya.App
    Shibuya.Batch
    Shibuya.Core
    Shibuya.Core.Ack
    Shibuya.Core.AckHandle
    Shibuya.Core.Error
    Shibuya.Core.Ingested
    Shibuya.Core.Lease
    Shibuya.Core.Metrics
    Shibuya.Core.Retry
    Shibuya.Core.Types
    Shibuya.Handler
    Shibuya.Internal.App
    Shibuya.Internal.Runner.BatchProcessor
    Shibuya.Internal.Runner.Batcher
    Shibuya.Internal.Runner.Finalize
    Shibuya.Internal.Runner.Ingester
    Shibuya.Internal.Runner.KeyedScheduler
    Shibuya.Internal.Runner.Master
    Shibuya.Internal.Runner.Pause
    Shibuya.Internal.Runner.Supervised
    Shibuya.Policy
    Shibuya.Stream
    Shibuya.Telemetry
    Shibuya.Telemetry.Effect
    Shibuya.Telemetry.Propagation
    Shibuya.Telemetry.Semantic

  other-modules:
    Shibuya.Internal.Runner.Halt
    Shibuya.Prelude

  default-extensions:
    DeriveAnyClass
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    NoFieldSelectors
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    QuasiQuotes

  build-depends:
    aeson ^>=2.2,
    async ^>=2.2,
    atomic-primops ^>=0.8.8,
    base ^>=4.21.0.0,
    bytestring ^>=0.12.2.0,
    containers ^>=0.7,
    deepseq ^>=1.5,
    effectful-core (>=2.6.1 && <2.7) || (>=2.7.1.1 && <2.8),
    hs-opentelemetry-api ^>=1.0,
    hs-opentelemetry-propagator-w3c ^>=1.0,
    hs-opentelemetry-semantic-conventions ^>=1.40,
    nqe ^>=0.6,
    random >=1.2 && <1.4,
    stm ^>=2.5,
    streamly ^>=0.11,
    streamly-core ^>=0.3,
    text ^>=2.1.3,
    time ^>=1.14,
    unliftio ^>=0.2,
    unordered-containers ^>=0.2,

  hs-source-dirs: src
  default-language: GHC2024

test-suite shibuya-core-test
  import: warnings
  default-language: GHC2024
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: Main.hs
  default-extensions:
    DataKinds
    DeriveAnyClass
    DerivingStrategies
    DuplicateRecordFields
    LambdaCase
    NoFieldSelectors
    OverloadedLabels
    OverloadedRecordDot
    OverloadedStrings
    QuasiQuotes

  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  other-modules:
    Shibuya.App.BatchSpec
    Shibuya.App.LifecycleSpec
    Shibuya.Batch.ReliabilitySpec
    Shibuya.Batch.TestHarness
    Shibuya.BatchSpec
    Shibuya.Core.AckSpec
    Shibuya.Core.MetricsSpec
    Shibuya.Core.RetrySpec
    Shibuya.Core.TypesSpec
    Shibuya.PolicySpec
    Shibuya.PublicApiSpec
    Shibuya.Runner.BatchProcessorSpec
    Shibuya.Runner.BatcherSpec
    Shibuya.Runner.PartitionOrderingSpec
    Shibuya.Runner.PauseSpec
    Shibuya.Runner.SupervisedSpec
    Shibuya.RunnerSpec
    Shibuya.Telemetry.EffectSpec
    Shibuya.Telemetry.LifecycleSpec
    Shibuya.Telemetry.PropagationSpec
    Shibuya.Telemetry.SemanticSpec

  build-depends:
    aeson,
    QuickCheck ^>=2.15,
    base ^>=4.21.0.0,
    bytestring,
    containers,
    effectful-core (>=2.6.1 && <2.7) || (>=2.7.1.1 && <2.8),
    hs-opentelemetry-api,
    hs-opentelemetry-exporter-in-memory ^>=1.0,
    hspec ^>=2.11,
    nqe,
    shibuya-core,
    stm,
    streamly,
    streamly-core,
    text,
    time,
    unliftio,
    unordered-containers,

-- Isolate the bare-waitApp liveness probe so process exit cleans up without
-- retaining the master (which would conceal the regression).
test-suite shibuya-core-gc-test
  import: warnings
  default-language: GHC2024
  type: exitcode-stdio-1.0
  hs-source-dirs: test-gc
  main-is: Main.hs
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N2

  build-depends:
    base ^>=4.21.0.0,
    effectful-core (>=2.6.1 && <2.7) || (>=2.7.1.1 && <2.8),
    shibuya-core,
    streamly-core,
    unliftio,

test-suite shibuya-core-gc-finished-test
  import: warnings
  default-language: GHC2024
  type: exitcode-stdio-1.0
  hs-source-dirs: test-gc
  main-is: Finished.hs
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N2

  build-depends:
    base ^>=4.21.0.0,
    effectful-core (>=2.6.1 && <2.7) || (>=2.7.1.1 && <2.8),
    nqe,
    shibuya-core,
    streamly-core,
    unliftio,