packages feed

keiro-0.3.0.0: keiro.cabal

cabal-version:   3.0
name:            keiro
version:         0.3.0.0
synopsis:        Event sourcing framework and workflow engine
description:
  A library that composes kiroku, keiki, and shibuya into an
  event-sourcing and workflow-orchestration framework.

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
  README.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
    OverloadedStrings
    PackageImports

library
  import:             warnings, shared
  exposed-modules:
    Keiro
    Keiro.Command
    Keiro.Connection
    Keiro.DeadLetter
    Keiro.DeadLetter.Replay
    Keiro.DeadLetter.Schema
    Keiro.Inbox
    Keiro.Inbox.Kafka
    Keiro.Inbox.Schema
    Keiro.Inbox.Types
    Keiro.Outbox
    Keiro.Outbox.Kafka
    Keiro.Outbox.Schema
    Keiro.Outbox.Types
    Keiro.ProcessManager
    Keiro.Projection
    Keiro.ReadModel
    Keiro.ReadModel.Rebuild
    Keiro.ReadModel.Schema
    Keiro.Router
    Keiro.Snapshot
    Keiro.Snapshot.Codec
    Keiro.Snapshot.Schema
    Keiro.Subscription.Shard
    Keiro.Subscription.Shard.Schema
    Keiro.Subscription.Shard.Worker
    Keiro.Telemetry
    Keiro.Timer
    Keiro.Timer.Schema
    Keiro.Timer.Types
    Keiro.Wake
    Keiro.Workflow
    Keiro.Workflow.Awakeable
    Keiro.Workflow.Awakeable.Schema
    Keiro.Workflow.Child
    Keiro.Workflow.Child.Schema
    Keiro.Workflow.Gc
    Keiro.Workflow.Instance
    Keiro.Workflow.Resume
    Keiro.Workflow.Schema
    Keiro.Workflow.Sleep
    Keiro.Workflow.Snapshot
    Keiro.Workflow.Types

  reexported-modules:
    keiro-core:Keiro.Codec,
    keiro-core:Keiro.EventStream,
    keiro-core:Keiro.EventStream.Validate,
    keiro-core:Keiro.Integration.Event,
    keiro-core:Keiro.Prelude,
    keiro-core:Keiro.Snapshot.Policy,
    keiro-core:Keiro.Stream

  hs-source-dirs:     src
  build-depends:
    , aeson                                  >=2.2
    , aeson-casing                           >=0.2
    , base                                   >=4.21     && <5
    , bytestring                             >=0.11
    , containers                             >=0.6
    , contravariant-extras                   >=0.3
    , deepseq                                >=1.5
    , effectful                              >=2.6
    , effectful-core                         >=2.6
    , generic-lens                           >=2.2
    , hasql                                  >=1.10
    , hasql-pool                             >=1.2
    , hasql-transaction                      >=1.1
    , hs-opentelemetry-api                   >=1.0      && <1.1
    , hs-opentelemetry-propagator-w3c        >=1.0      && <1.1
    , hs-opentelemetry-semantic-conventions  >=1.40     && <2
    , keiki                                  >=0.2      && <0.3
    , keiki-codec-json                       >=0.2      && <0.3
    , keiro-core                             ^>=0.3.0.0
    , kiroku-store                           >=0.3      && <0.4
    , lens                                   >=5.2
    , mmzk-typeid                            >=0.7
    , scientific                             >=0.3
    , shibuya-core                           >=0.8.0.1  && <0.9
    , stm                                    >=2.5
    , streamly                               >=0.11
    , streamly-core                          >=0.3
    , text                                   >=2.1
    , time                                   >=1.12
    , unliftio-core                          >=0.2
    , uuid                                   >=1.3
    , vector                                 >=0.13

test-suite keiro-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
    , bytestring                             >=0.11
    , containers                             >=0.6
    , contravariant-extras                   >=0.3
    , effectful                              >=2.6
    , effectful-core                         >=2.6
    , hasql                                  >=1.10
    , hasql-pool                             >=1.2
    , hasql-transaction                      >=1.1
    , hs-opentelemetry-api                   >=1.0     && <1.1
    , hs-opentelemetry-exporter-in-memory    >=1.0     && <1.1
    , hs-opentelemetry-propagator-w3c        >=1.0     && <1.1
    , hs-opentelemetry-sdk                   >=1.0     && <1.1
    , hs-opentelemetry-semantic-conventions  >=1.40    && <2
    , hspec                                  >=2.11
    , keiki
    , keiki-codec-json
    , keiro
    , keiro-test-support
    , kiroku-store                           >=0.3     && <0.4
    , process                                >=1.6
    , shibuya-core                           >=0.8.0.1 && <0.9
    , stm                                    >=2.5
    , streamly-core                          >=0.3
    , text                                   >=2.1
    , time                                   >=1.12
    , unliftio-core                          >=0.2
    , uuid                                   >=1.3
    , vector                                 >=0.13

benchmark keiro-bench
  import:         warnings, shared
  type:           exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is:        Main.hs
  ghc-options:    -threaded -rtsopts -with-rtsopts=-N
  build-depends:
    , base                  >=4.21     && <5
    , bytestring            >=0.11
    , effectful             >=2.6
    , hasql-transaction     >=1.1
    , hs-opentelemetry-api  >=1.0      && <1.1
    , hs-opentelemetry-sdk  >=1.0      && <1.1
    , keiro
    , keiro-core            ^>=0.3.0.0
    , keiro-test-support
    , kiroku-store          >=0.3      && <0.4
    , tasty-bench           >=0.4
    , text                  >=2.1
    , time                  >=1.12
    , uuid                  >=1.3