packages feed

Cabal revisions of grapesy-1.0.0

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-cabal-version:      3.0-name:               grapesy-version:            1.0.0-synopsis:           Native Haskell implementation of the gRPC framework-description:        This is a fully compliant and feature complete native Haskell-                    implementation of gRPC, Google's RPC framework.-license:            BSD-3-Clause-license-file:       LICENSE-author:             Edsko de Vries-maintainer:         edsko@well-typed.com-category:           Network-build-type:         Simple-extra-doc-files:    CHANGELOG.md-data-dir:           data-data-files:         route_guide_db.json-                    grpc-demo.pem-                    grpc-demo.key-                    interop.pem-                    interop.key-                    interop-ca.pem-tested-with:        GHC==8.10.7-                  , GHC==9.2.8-                  , GHC==9.4.8-                  , GHC==9.6.6-                  , GHC==9.8.2-                  , GHC==9.10.1--source-repository head-  type:     git-  location: https://github.com/well-typed/grapesy--common lang-  ghc-options:-      -Wall-      -Wredundant-constraints-      -Wno-unticked-promoted-constructors-      -Wprepositive-qualified-module-      -Widentities-      -Wmissing-export-lists-  build-depends:-      base >= 4.14 && < 4.22-  default-language:-      Haskell2010-  default-extensions:-      BangPatterns-      ConstraintKinds-      DataKinds-      DeriveAnyClass-      DeriveFunctor-      DeriveGeneric-      DeriveTraversable-      DerivingStrategies-      DerivingVia-      DisambiguateRecordFields-      FlexibleContexts-      FlexibleInstances-      GADTs-      GeneralizedNewtypeDeriving-      ImportQualifiedPost-      InstanceSigs-      LambdaCase-      MultiParamTypeClasses-      MultiWayIf-      NamedFieldPuns-      NumericUnderscores-      PolyKinds-      RankNTypes-      ScopedTypeVariables-      StandaloneDeriving-      TupleSections-      TypeApplications-      TypeFamilies-      TypeOperators-      UndecidableInstances--  if impl(ghc >= 9.0)-    ghc-options:-      -- This was introduced in 8.10, but it does not work reliably until 9.0.-      -- In 8.10 you might get spurious warnings when using re-exported modules-      -- (e.g. in proto-lens-runtime).-      -Wunused-packages--common common-executable-flags-  ghc-options:-      -threaded-      -rtsopts--library-  import:          lang-  autogen-modules: Paths_grapesy-  hs-source-dirs:  src, proto--  exposed-modules:-      Network.GRPC.Client-      Network.GRPC.Client.Binary-      Network.GRPC.Client.StreamType.CanCallRPC-      Network.GRPC.Client.StreamType.Conduit-      Network.GRPC.Client.StreamType.IO-      Network.GRPC.Client.StreamType.IO.Binary-      Network.GRPC.Common-      Network.GRPC.Common.Binary-      Network.GRPC.Common.Compression-      Network.GRPC.Common.Headers-      Network.GRPC.Common.HTTP2Settings-      Network.GRPC.Common.JSON-      Network.GRPC.Common.NextElem-      Network.GRPC.Common.Protobuf-      Network.GRPC.Common.Protobuf.Any-      Network.GRPC.Common.StreamElem-      Network.GRPC.Common.StreamType-      Network.GRPC.Server-      Network.GRPC.Server.Binary-      Network.GRPC.Server.Protobuf-      Network.GRPC.Server.Run-      Network.GRPC.Server.StreamType-      Network.GRPC.Server.StreamType.Binary-  other-modules:-      Network.GRPC.Client.Call-      Network.GRPC.Client.Connection-      Network.GRPC.Client.Meta-      Network.GRPC.Client.Session-      Network.GRPC.Client.StreamType-      Network.GRPC.Server.Call-      Network.GRPC.Server.Context-      Network.GRPC.Server.Handler-      Network.GRPC.Server.HandlerMap-      Network.GRPC.Server.RequestHandler-      Network.GRPC.Server.RequestHandler.API-      Network.GRPC.Server.Session-      Network.GRPC.Util.AccumulatedByteString-      Network.GRPC.Util.GHC-      Network.GRPC.Util.HTTP2-      Network.GRPC.Util.HTTP2.Stream-      Network.GRPC.Util.RedundantConstraint-      Network.GRPC.Util.Session-      Network.GRPC.Util.Session.API-      Network.GRPC.Util.Session.Channel-      Network.GRPC.Util.Session.Client-      Network.GRPC.Util.Session.Server-      Network.GRPC.Util.Thread-      Network.GRPC.Util.TLS--      Paths_grapesy-  build-depends:-    , aeson                     >= 1.5     && < 2.3-    , async                     >= 2.2     && < 2.3-    , binary                    >= 0.8     && < 0.9-    , bytestring                >= 0.10.12 && < 0.13-    , conduit                   >= 1.3     && < 1.4-    , containers                >= 0.6     && < 0.8-    , crypton-x509              >= 1.7     && < 1.8-    , crypton-x509-store        >= 1.6     && < 1.7-    , crypton-x509-system       >= 1.6     && < 1.7-    , data-default              >= 0.7     && < 0.9-    , deepseq                   >= 1.4     && < 1.6-    , exceptions                >= 0.10    && < 0.11-    , grpc-spec                 >= 1.0     && < 1.1-    , http-types                >= 0.12    && < 0.13-    , http2-tls                 >= 0.4.5   && < 0.5-    , lens                      >= 5.0     && < 5.4-    , mtl                       >= 2.2     && < 2.4-    , network                   >= 3.2.4   && < 3.3-    , network-run               >= 0.4.3   && < 0.5-    , proto-lens                >= 0.7     && < 0.8-    , proto-lens-protobuf-types >= 0.7     && < 0.8-    , random                    >= 1.2     && < 1.4-    , recv                      >= 0.1     && < 0.2-    , stm                       >= 2.5     && < 2.6-    , text                      >= 1.2     && < 2.2-    , time-manager              >= 0.2.2   && < 0.3-    , tls                       >= 1.7     && < 2.2-    , unbounded-delays          >= 0.1.1   && < 0.2-    , unordered-containers      >= 0.2     && < 0.3-    , utf8-string               >= 1.0     && < 1.1--      -- We pin very specific versions of http2.-      ---      -- New versions should be tested against the full grapesy test suite-      -- (regular tests and stress tests).-    , http2 == 5.3.9--test-suite test-record-dot-  import:         lang, common-executable-flags-  type:           exitcode-stdio-1.0-  hs-source-dirs: test-record-dot, proto-  main-is:        Main.hs-  build-depends:  grapesy--  other-modules:-      Test.OverloadedRecordDot-      Test.OverloadedRecordUpdate-      Proto.Spec--  build-depends:-      -- Inherited dependencies-    , bytestring-    , containers-    , text--  build-depends:-      -- Additional dependencies-    , proto-lens-runtime >= 0.7  && < 0.8-    , tasty              >= 1.4  && < 1.6-    , tasty-hunit        >= 0.10 && < 0.11-    , vector             >= 0.13 && < 0.14-    , record-hasfield    >= 1.0  && < 1.1--  if impl(ghc < 9.2)-    buildable: False--test-suite test-grapesy-  import:          lang, common-executable-flags-  type:            exitcode-stdio-1.0-  hs-source-dirs:  test-grapesy, proto-  main-is:         Main.hs-  autogen-modules: Paths_grapesy-  build-depends:   grapesy--  other-modules:-      Test.Driver.ClientServer-      Test.Driver.Dialogue-      Test.Driver.Dialogue.Definition-      Test.Driver.Dialogue.Execution-      Test.Driver.Dialogue.Generation-      Test.Driver.Dialogue.TestClock-      Test.Prop.Dialogue-      Test.Regression.Issue102-      Test.Regression.Issue238-      Test.Sanity.Any-      Test.Sanity.BrokenDeployments-      Test.Sanity.Compression-      Test.Sanity.Disconnect-      Test.Sanity.EndOfStream-      Test.Sanity.Interop-      Test.Sanity.Reclamation-      Test.Sanity.StreamingType.CustomFormat-      Test.Sanity.StreamingType.NonStreaming-      Test.Util-      Test.Util.Exception-      Test.Util.RawTestServer--      Paths_grapesy--      Proto.API.Helloworld-      Proto.API.Interop-      Proto.API.Ping-      Proto.API.RouteGuide-      Proto.API.TestAny-      Proto.API.Trivial-      Proto.Empty-      Proto.Helloworld-      Proto.Messages-      Proto.Ping-      Proto.RouteGuide-      Proto.Test-      Proto.TestAny--  build-depends:-      -- Inherited dependencies-    , async-    , bytestring-    , containers-    , deepseq-    , exceptions-    , http-types-    , http2-    , mtl-    , network-    , proto-lens-protobuf-types-    , stm-    , text-    , tls-    , utf8-string--  build-depends:-      -- Additional dependencies-    , proto-lens-runtime >= 0.7   && < 0.8-    , QuickCheck         >= 2.14  && < 2.16-    , serialise          >= 0.2   && < 0.3-    , tasty              >= 1.4   && < 1.6-    , tasty-hunit        >= 0.10  && < 0.11-    , tasty-quickcheck   >= 0.10  && < 0.12-    , temporary          >= 1.3   && < 1.4-    , unix               >= 2.7   && < 2.9--test-suite test-stress-  import:             lang, common-executable-flags-  type:               exitcode-stdio-1.0-  hs-source-dirs:     test-stress, proto-  main-is:            Main.hs-  autogen-modules:    Paths_grapesy-  build-depends:      grapesy-  default-extensions: RecordWildCards--  other-modules:-      Test.Stress.Client-      Test.Stress.Cmdline-      Test.Stress.Common-      Test.Stress.Driver-      Test.Stress.Driver.Summary-      Test.Stress.Server--      Proto.API.Trivial--      Paths_grapesy--  build-depends:-      -- Inherited dependencies-    , async-    , bytestring-    , exceptions-    , http2-    , network-    , text-    , tls--  build-depends:-      -- Additional dependencies-    , Chart                >= 1.9     && < 1.10-    , Chart-diagrams       >= 1.9     && < 1.10-    , directory            >= 1.3     && < 1.4-    , filepath             >= 1.4.2.1 && < 1.6-    , ghc-events           >= 0.17    && < 0.21-    , optparse-applicative >= 0.16    && < 0.19-    , pretty-show          >= 1.10    && < 1.11-    , process              >= 1.6.12  && < 1.7-    , random               >= 1.2     && < 1.4-    , temporary            >= 1.3     && < 1.4--  if !flag(build-stress-test)-    buildable:-      False--test-suite grapesy-interop-  import:             lang, common-executable-flags-  type:               exitcode-stdio-1.0-  hs-source-dirs:     interop, proto-  main-is:            Main.hs-  autogen-modules:    Paths_grapesy-  build-depends:      grapesy-  default-extensions: OverloadedLabels--  other-modules:-      Interop.Client-      Interop.Client.Common-      Interop.Client.Connect-      Interop.Client.Ping-      Interop.Client.TestCase.CancelAfterBegin-      Interop.Client.TestCase.CancelAfterFirstResponse-      Interop.Client.TestCase.ClientCompressedStreaming-      Interop.Client.TestCase.ClientCompressedUnary-      Interop.Client.TestCase.ClientStreaming-      Interop.Client.TestCase.CustomMetadata-      Interop.Client.TestCase.EmptyStream-      Interop.Client.TestCase.EmptyUnary-      Interop.Client.TestCase.LargeUnary-      Interop.Client.TestCase.PingPong-      Interop.Client.TestCase.ServerCompressedStreaming-      Interop.Client.TestCase.ServerCompressedUnary-      Interop.Client.TestCase.ServerStreaming-      Interop.Client.TestCase.SpecialStatusMessage-      Interop.Client.TestCase.StatusCodeAndMessage-      Interop.Client.TestCase.TimeoutOnSleepingServer-      Interop.Client.TestCase.UnimplementedMethod-      Interop.Client.TestCase.UnimplementedService-      Interop.Cmdline-      Interop.SelfTest-      Interop.Server-      Interop.Server.Common-      Interop.Server.PingService.Ping-      Interop.Server.TestService.EmptyCall-      Interop.Server.TestService.FullDuplexCall-      Interop.Server.TestService.StreamingInputCall-      Interop.Server.TestService.StreamingOutputCall-      Interop.Server.TestService.UnaryCall-      Interop.Util.ANSI-      Interop.Util.Exceptions-      Interop.Util.Messages--      Paths_grapesy--      Proto.API.Interop-      Proto.API.Ping-      Proto.Empty-      Proto.Messages-      Proto.Ping-      Proto.Test--  build-depends:-      -- Inherited dependencies-    , bytestring-    , exceptions-    , grpc-spec-    , mtl-    , network-    , text--  build-depends:-      -- Additional dependencies-    , ansi-terminal        >= 1.1  && < 1.2-    , optparse-applicative >= 0.16 && < 0.19-    , proto-lens-runtime   >= 0.7  && < 0.8--benchmark grapesy-kvstore-  import:             lang, common-executable-flags-  type:               exitcode-stdio-1.0-  main-is:            Main.hs-  hs-source-dirs:     kvstore, proto-  autogen-modules:    Paths_grapesy-  build-depends:      grapesy-  default-extensions: OverloadedLabels--  other-modules:-      KVStore.API-      KVStore.API.JSON-      KVStore.API.Protobuf-      KVStore.Client-      KVStore.Cmdline-      KVStore.Server-      KVStore.Util.Profiling-      KVStore.Util.RandomAccessSet-      KVStore.Util.RandomGen-      KVStore.Util.Store--      Proto.Kvstore--      Paths_grapesy--  build-depends:-      -- Inherited dependencies-    , aeson-    , bytestring-    , containers-    , deepseq-    , text-    , unordered-containers--  build-depends:-      -- Additional dependencies-    , base16-bytestring    >= 1.0  && < 1.1-    , base64-bytestring    >= 1.2  && < 1.3-    , hashable             >= 1.3  && < 1.6-    , optparse-applicative >= 0.16 && < 0.19-    , proto-lens-runtime   >= 0.7  && < 0.8-    , splitmix             >= 0.1  && < 0.2--  if flag(strace)-    cpp-options: -DSTRACE-    build-depends: unix >= 2.7 && < 2.9--Flag build-stress-test-  description: Build the stress test-  default: False-  manual: True--Flag strace-  description: Write events to /dev/null in @grapesy-kvstore@ so that they show up in strace-  default: False-  manual: True+cabal-version:      3.0
+name:               grapesy
+version:            1.0.0
+x-revision: 1
+synopsis:           Native Haskell implementation of the gRPC framework
+description:        This is a fully compliant and feature complete native Haskell
+                    implementation of gRPC, Google's RPC framework.
+license:            BSD-3-Clause
+license-file:       LICENSE
+author:             Edsko de Vries
+maintainer:         edsko@well-typed.com
+category:           Network
+build-type:         Simple
+extra-doc-files:    CHANGELOG.md
+data-dir:           data
+data-files:         route_guide_db.json
+                    grpc-demo.pem
+                    grpc-demo.key
+                    interop.pem
+                    interop.key
+                    interop-ca.pem
+tested-with:        GHC==8.10.7
+                  , GHC==9.2.8
+                  , GHC==9.4.8
+                  , GHC==9.6.6
+                  , GHC==9.8.2
+                  , GHC==9.10.1
+
+source-repository head
+  type:     git
+  location: https://github.com/well-typed/grapesy
+
+common lang
+  ghc-options:
+      -Wall
+      -Wredundant-constraints
+      -Wno-unticked-promoted-constructors
+      -Wprepositive-qualified-module
+      -Widentities
+      -Wmissing-export-lists
+  build-depends:
+      base >= 4.14 && < 4.22
+  default-language:
+      Haskell2010
+  default-extensions:
+      BangPatterns
+      ConstraintKinds
+      DataKinds
+      DeriveAnyClass
+      DeriveFunctor
+      DeriveGeneric
+      DeriveTraversable
+      DerivingStrategies
+      DerivingVia
+      DisambiguateRecordFields
+      FlexibleContexts
+      FlexibleInstances
+      GADTs
+      GeneralizedNewtypeDeriving
+      ImportQualifiedPost
+      InstanceSigs
+      LambdaCase
+      MultiParamTypeClasses
+      MultiWayIf
+      NamedFieldPuns
+      NumericUnderscores
+      PolyKinds
+      RankNTypes
+      ScopedTypeVariables
+      StandaloneDeriving
+      TupleSections
+      TypeApplications
+      TypeFamilies
+      TypeOperators
+      UndecidableInstances
+
+  if impl(ghc >= 9.0)
+    ghc-options:
+      -- This was introduced in 8.10, but it does not work reliably until 9.0.
+      -- In 8.10 you might get spurious warnings when using re-exported modules
+      -- (e.g. in proto-lens-runtime).
+      -Wunused-packages
+
+common common-executable-flags
+  ghc-options:
+      -threaded
+      -rtsopts
+
+library
+  import:          lang
+  autogen-modules: Paths_grapesy
+  hs-source-dirs:  src, proto
+
+  exposed-modules:
+      Network.GRPC.Client
+      Network.GRPC.Client.Binary
+      Network.GRPC.Client.StreamType.CanCallRPC
+      Network.GRPC.Client.StreamType.Conduit
+      Network.GRPC.Client.StreamType.IO
+      Network.GRPC.Client.StreamType.IO.Binary
+      Network.GRPC.Common
+      Network.GRPC.Common.Binary
+      Network.GRPC.Common.Compression
+      Network.GRPC.Common.Headers
+      Network.GRPC.Common.HTTP2Settings
+      Network.GRPC.Common.JSON
+      Network.GRPC.Common.NextElem
+      Network.GRPC.Common.Protobuf
+      Network.GRPC.Common.Protobuf.Any
+      Network.GRPC.Common.StreamElem
+      Network.GRPC.Common.StreamType
+      Network.GRPC.Server
+      Network.GRPC.Server.Binary
+      Network.GRPC.Server.Protobuf
+      Network.GRPC.Server.Run
+      Network.GRPC.Server.StreamType
+      Network.GRPC.Server.StreamType.Binary
+  other-modules:
+      Network.GRPC.Client.Call
+      Network.GRPC.Client.Connection
+      Network.GRPC.Client.Meta
+      Network.GRPC.Client.Session
+      Network.GRPC.Client.StreamType
+      Network.GRPC.Server.Call
+      Network.GRPC.Server.Context
+      Network.GRPC.Server.Handler
+      Network.GRPC.Server.HandlerMap
+      Network.GRPC.Server.RequestHandler
+      Network.GRPC.Server.RequestHandler.API
+      Network.GRPC.Server.Session
+      Network.GRPC.Util.AccumulatedByteString
+      Network.GRPC.Util.GHC
+      Network.GRPC.Util.HTTP2
+      Network.GRPC.Util.HTTP2.Stream
+      Network.GRPC.Util.RedundantConstraint
+      Network.GRPC.Util.Session
+      Network.GRPC.Util.Session.API
+      Network.GRPC.Util.Session.Channel
+      Network.GRPC.Util.Session.Client
+      Network.GRPC.Util.Session.Server
+      Network.GRPC.Util.Thread
+      Network.GRPC.Util.TLS
+
+      Paths_grapesy
+  build-depends:
+    , aeson                     >= 1.5     && < 2.3
+    , async                     >= 2.2     && < 2.3
+    , binary                    >= 0.8     && < 0.9
+    , bytestring                >= 0.10.12 && < 0.13
+    , conduit                   >= 1.3     && < 1.4
+    , containers                >= 0.6     && < 0.8
+    , crypton-x509              >= 1.7     && < 1.8
+    , crypton-x509-store        >= 1.6     && < 1.7
+    , crypton-x509-system       >= 1.6     && < 1.7
+    , data-default              >= 0.7     && < 0.9
+    , deepseq                   >= 1.4     && < 1.6
+    , exceptions                >= 0.10    && < 0.11
+    , grpc-spec                 >= 1.0     && < 1.1
+    , http-types                >= 0.12    && < 0.13
+    , http2-tls                 >= 0.4.5   && < 0.5
+    , lens                      >= 5.0     && < 5.4
+    , mtl                       >= 2.2     && < 2.4
+    , network                   >= 3.2.4   && < 3.3
+    , network-run               == 0.4.3
+    , proto-lens                >= 0.7     && < 0.8
+    , proto-lens-protobuf-types >= 0.7     && < 0.8
+    , random                    >= 1.2     && < 1.4
+    , recv                      >= 0.1     && < 0.2
+    , stm                       >= 2.5     && < 2.6
+    , text                      >= 1.2     && < 2.2
+    , time-manager              >= 0.2.2   && < 0.3
+    , tls                       >= 1.7     && < 2.2
+    , unbounded-delays          >= 0.1.1   && < 0.2
+    , unordered-containers      >= 0.2     && < 0.3
+    , utf8-string               >= 1.0     && < 1.1
+
+      -- We pin very specific versions of http2.
+      --
+      -- New versions should be tested against the full grapesy test suite
+      -- (regular tests and stress tests).
+    , http2 == 5.3.9
+
+test-suite test-record-dot
+  import:         lang, common-executable-flags
+  type:           exitcode-stdio-1.0
+  hs-source-dirs: test-record-dot, proto
+  main-is:        Main.hs
+  build-depends:  grapesy
+
+  other-modules:
+      Test.OverloadedRecordDot
+      Test.OverloadedRecordUpdate
+      Proto.Spec
+
+  build-depends:
+      -- Inherited dependencies
+    , bytestring
+    , containers
+    , text
+
+  build-depends:
+      -- Additional dependencies
+    , proto-lens-runtime >= 0.7  && < 0.8
+    , tasty              >= 1.4  && < 1.6
+    , tasty-hunit        >= 0.10 && < 0.11
+    , vector             >= 0.13 && < 0.14
+    , record-hasfield    >= 1.0  && < 1.1
+
+  if impl(ghc < 9.2)
+    buildable: False
+
+test-suite test-grapesy
+  import:          lang, common-executable-flags
+  type:            exitcode-stdio-1.0
+  hs-source-dirs:  test-grapesy, proto
+  main-is:         Main.hs
+  autogen-modules: Paths_grapesy
+  build-depends:   grapesy
+
+  other-modules:
+      Test.Driver.ClientServer
+      Test.Driver.Dialogue
+      Test.Driver.Dialogue.Definition
+      Test.Driver.Dialogue.Execution
+      Test.Driver.Dialogue.Generation
+      Test.Driver.Dialogue.TestClock
+      Test.Prop.Dialogue
+      Test.Regression.Issue102
+      Test.Regression.Issue238
+      Test.Sanity.Any
+      Test.Sanity.BrokenDeployments
+      Test.Sanity.Compression
+      Test.Sanity.Disconnect
+      Test.Sanity.EndOfStream
+      Test.Sanity.Interop
+      Test.Sanity.Reclamation
+      Test.Sanity.StreamingType.CustomFormat
+      Test.Sanity.StreamingType.NonStreaming
+      Test.Util
+      Test.Util.Exception
+      Test.Util.RawTestServer
+
+      Paths_grapesy
+
+      Proto.API.Helloworld
+      Proto.API.Interop
+      Proto.API.Ping
+      Proto.API.RouteGuide
+      Proto.API.TestAny
+      Proto.API.Trivial
+      Proto.Empty
+      Proto.Helloworld
+      Proto.Messages
+      Proto.Ping
+      Proto.RouteGuide
+      Proto.Test
+      Proto.TestAny
+
+  build-depends:
+      -- Inherited dependencies
+    , async
+    , bytestring
+    , containers
+    , deepseq
+    , exceptions
+    , http-types
+    , http2
+    , mtl
+    , network
+    , proto-lens-protobuf-types
+    , stm
+    , text
+    , tls
+    , utf8-string
+
+  build-depends:
+      -- Additional dependencies
+    , proto-lens-runtime >= 0.7   && < 0.8
+    , QuickCheck         >= 2.14  && < 2.16
+    , serialise          >= 0.2   && < 0.3
+    , tasty              >= 1.4   && < 1.6
+    , tasty-hunit        >= 0.10  && < 0.11
+    , tasty-quickcheck   >= 0.10  && < 0.12
+    , temporary          >= 1.3   && < 1.4
+    , unix               >= 2.7   && < 2.9
+
+test-suite test-stress
+  import:             lang, common-executable-flags
+  type:               exitcode-stdio-1.0
+  hs-source-dirs:     test-stress, proto
+  main-is:            Main.hs
+  autogen-modules:    Paths_grapesy
+  build-depends:      grapesy
+  default-extensions: RecordWildCards
+
+  other-modules:
+      Test.Stress.Client
+      Test.Stress.Cmdline
+      Test.Stress.Common
+      Test.Stress.Driver
+      Test.Stress.Driver.Summary
+      Test.Stress.Server
+
+      Proto.API.Trivial
+
+      Paths_grapesy
+
+  build-depends:
+      -- Inherited dependencies
+    , async
+    , bytestring
+    , exceptions
+    , http2
+    , network
+    , text
+    , tls
+
+  build-depends:
+      -- Additional dependencies
+    , Chart                >= 1.9     && < 1.10
+    , Chart-diagrams       >= 1.9     && < 1.10
+    , directory            >= 1.3     && < 1.4
+    , filepath             >= 1.4.2.1 && < 1.6
+    , ghc-events           >= 0.17    && < 0.21
+    , optparse-applicative >= 0.16    && < 0.19
+    , pretty-show          >= 1.10    && < 1.11
+    , process              >= 1.6.12  && < 1.7
+    , random               >= 1.2     && < 1.4
+    , temporary            >= 1.3     && < 1.4
+
+  if !flag(build-stress-test)
+    buildable:
+      False
+
+test-suite grapesy-interop
+  import:             lang, common-executable-flags
+  type:               exitcode-stdio-1.0
+  hs-source-dirs:     interop, proto
+  main-is:            Main.hs
+  autogen-modules:    Paths_grapesy
+  build-depends:      grapesy
+  default-extensions: OverloadedLabels
+
+  other-modules:
+      Interop.Client
+      Interop.Client.Common
+      Interop.Client.Connect
+      Interop.Client.Ping
+      Interop.Client.TestCase.CancelAfterBegin
+      Interop.Client.TestCase.CancelAfterFirstResponse
+      Interop.Client.TestCase.ClientCompressedStreaming
+      Interop.Client.TestCase.ClientCompressedUnary
+      Interop.Client.TestCase.ClientStreaming
+      Interop.Client.TestCase.CustomMetadata
+      Interop.Client.TestCase.EmptyStream
+      Interop.Client.TestCase.EmptyUnary
+      Interop.Client.TestCase.LargeUnary
+      Interop.Client.TestCase.PingPong
+      Interop.Client.TestCase.ServerCompressedStreaming
+      Interop.Client.TestCase.ServerCompressedUnary
+      Interop.Client.TestCase.ServerStreaming
+      Interop.Client.TestCase.SpecialStatusMessage
+      Interop.Client.TestCase.StatusCodeAndMessage
+      Interop.Client.TestCase.TimeoutOnSleepingServer
+      Interop.Client.TestCase.UnimplementedMethod
+      Interop.Client.TestCase.UnimplementedService
+      Interop.Cmdline
+      Interop.SelfTest
+      Interop.Server
+      Interop.Server.Common
+      Interop.Server.PingService.Ping
+      Interop.Server.TestService.EmptyCall
+      Interop.Server.TestService.FullDuplexCall
+      Interop.Server.TestService.StreamingInputCall
+      Interop.Server.TestService.StreamingOutputCall
+      Interop.Server.TestService.UnaryCall
+      Interop.Util.ANSI
+      Interop.Util.Exceptions
+      Interop.Util.Messages
+
+      Paths_grapesy
+
+      Proto.API.Interop
+      Proto.API.Ping
+      Proto.Empty
+      Proto.Messages
+      Proto.Ping
+      Proto.Test
+
+  build-depends:
+      -- Inherited dependencies
+    , bytestring
+    , exceptions
+    , grpc-spec
+    , mtl
+    , network
+    , text
+
+  build-depends:
+      -- Additional dependencies
+    , ansi-terminal        >= 1.1  && < 1.2
+    , optparse-applicative >= 0.16 && < 0.19
+    , proto-lens-runtime   >= 0.7  && < 0.8
+
+benchmark grapesy-kvstore
+  import:             lang, common-executable-flags
+  type:               exitcode-stdio-1.0
+  main-is:            Main.hs
+  hs-source-dirs:     kvstore, proto
+  autogen-modules:    Paths_grapesy
+  build-depends:      grapesy
+  default-extensions: OverloadedLabels
+
+  other-modules:
+      KVStore.API
+      KVStore.API.JSON
+      KVStore.API.Protobuf
+      KVStore.Client
+      KVStore.Cmdline
+      KVStore.Server
+      KVStore.Util.Profiling
+      KVStore.Util.RandomAccessSet
+      KVStore.Util.RandomGen
+      KVStore.Util.Store
+
+      Proto.Kvstore
+
+      Paths_grapesy
+
+  build-depends:
+      -- Inherited dependencies
+    , aeson
+    , bytestring
+    , containers
+    , deepseq
+    , text
+    , unordered-containers
+
+  build-depends:
+      -- Additional dependencies
+    , base16-bytestring    >= 1.0  && < 1.1
+    , base64-bytestring    >= 1.2  && < 1.3
+    , hashable             >= 1.3  && < 1.6
+    , optparse-applicative >= 0.16 && < 0.19
+    , proto-lens-runtime   >= 0.7  && < 0.8
+    , splitmix             >= 0.1  && < 0.2
+
+  if flag(strace)
+    cpp-options: -DSTRACE
+    build-depends: unix >= 2.7 && < 2.9
+
+Flag build-stress-test
+  description: Build the stress test
+  default: False
+  manual: True
+
+Flag strace
+  description: Write events to /dev/null in @grapesy-kvstore@ so that they show up in strace
+  default: False
+  manual: True