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