shibuya-core-0.13.0.0: shibuya-core.cabal
cabal-version: 3.12
name: shibuya-core
version: 0.13.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.Correlation
Shibuya.Telemetry.Effect
Shibuya.Telemetry.Process
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.BatchCorrelationSpec
Shibuya.Telemetry.CorrelationSpec
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,
-- Trace retention probes for the trace correlation work. Process-isolated for
-- the same reason as the GC suites: weak-pointer and live-bytes assertions
-- need nothing else in the process holding references (ADR 0001).
test-suite shibuya-core-trace-retention-test
import: warnings
default-language: GHC2024
type: exitcode-stdio-1.0
hs-source-dirs: test-retention
main-is: Main.hs
ghc-options:
-threaded
-rtsopts
"-with-rtsopts=-N2 -T"
build-depends:
base ^>=4.21.0.0,
bytestring,
effectful-core (>=2.6.1 && <2.7) || (>=2.7.1.1 && <2.8),
hs-opentelemetry-api,
hs-opentelemetry-exporter-in-memory ^>=1.0,
shibuya-core,
streamly-core,
text,