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,