mirror of
https://github.com/unclechu/gRPC-haskell.git
synced 2024-11-05 02:39:42 +01:00
9113e416e7
* Tweak runOps param order, inline common op sequences, clean up serverHandleNormalCall * More ops sequence inlining for clarity, experimenting with Managed * Checkpoint: preliminary support for all streaming modes; much cleanup/refactoring and api design still needed * Use mempty for default StatusDetails; tweak bad status matching mechanism * Preliminary user-facing, server-streaming, low-level api and test * renaming wibbles * Preliminary user-facing, client-streaming, low-level api and test * Move sendMsgs comb to Network.GRPC.LowLevel.Op; misc cleanup/DCR * Modify bidi streaming to omit request payload * Add transformers dep * Preliminary user-facing low-level bidirectional streaming api and test * Fix missing peek import * Remove TimeoutSeconds params on streaming mode functions * Fix serverHandleNormalCall rebase wart * Fix rebase warts; minor hlint fixes and wibbles * Post-rebase tweaks to optional payload use in serverRequestCall (i.e., now respects payloadHandling again) * Cleanup/refactor serverRequestCall * Fix comment * Change ServerRWHandler type so that handler does not have to invoke a finalizer * Change ServerReaderHandler type so that handler does not have to invoke a finalizer * Simplify serverWriter interface and ServerWriterHandler structure * Simplify serverRW (get rid of exec param), improve bidi streaming tests * Use ExceptT in serverRW impl * Change ServerRWHandler type to pass recv/send operations. * Renaming * Define ClientRWHandler, pass recv/send ops * wibbles * Use ExceptT in clientRW impl * Add DataKinded phantom typing to RegisteredMethod; misc cleanup * Simplify sendMsgs interface; add SingleSend type and related helpers * Rename SingleSend to SendSingle, use ExceptT to clean up {client,server}Writer and sendMsgs * More ExceptT cleanup in clientWriter * Factor out reusable bits of clientWriter * Shrink ServerReaderHandler * Delete stale comments * begin high-level server interface * update to datakind representation * clean up * move method type info to type level, parametrize ServerCall by payload * convert for writer handler * start switching over to Message-based handlers * begin work on highlevel example * comment out old code * parametrize StreamSend * parametrize StreamRecv * conversion for ServerReaderHandler * finish handler conversions * Add high level version and payload checking to echo-client * Decouple server CQs from call-bound CQs (registered methods); use more consistent naming conventions * Decouple server/call-bound CQs for unregistered methods; refactor U.serverRequestCall; misc cleanup * Make convertRecv total; formatting wibbles
154 lines
4 KiB
Text
154 lines
4 KiB
Text
name: grpc-haskell
|
|
version: 0.0.0.0
|
|
synopsis: Haskell implementation of gRPC layered on shared C library.
|
|
-- description:
|
|
homepage: http://github.com/aloiscochard/grpc-haskell
|
|
license: Apache-2.0
|
|
license-file: LICENSE
|
|
author: Alois Cochard
|
|
maintainer: alois.cochard@gmail.com
|
|
copyright: Copyright 2015 Alois Cochard
|
|
category: Network
|
|
build-type: Simple
|
|
cabal-version: >=1.10
|
|
extra-source-files: cbits, include
|
|
|
|
Flag Debug
|
|
Description: Adds debug logging.
|
|
Manual: True
|
|
Default: False
|
|
|
|
flag with-examples
|
|
description: Also build example executables.
|
|
manual: True
|
|
default: True
|
|
|
|
library
|
|
build-depends:
|
|
base ==4.8.*
|
|
, clock ==0.6.*
|
|
, bytestring ==0.10.*
|
|
, stm == 2.4.*
|
|
, containers ==0.5.*
|
|
, managed >= 1.0.5 && < 1.1
|
|
, pipes ==4.1.*
|
|
, transformers
|
|
, proto3-wire
|
|
, protobuf-wire
|
|
|
|
, async
|
|
, tasty >= 0.11 && <0.12
|
|
, tasty-hunit >= 0.9 && <0.10
|
|
, safe
|
|
|
|
c-sources:
|
|
cbits/grpc_haskell.c
|
|
exposed-modules:
|
|
-- NOTE: the order of these matters to c2hs.
|
|
Network.GRPC.Unsafe.Constants
|
|
Network.GRPC.Unsafe.Time
|
|
Network.GRPC.Unsafe.Slice
|
|
Network.GRPC.Unsafe.ChannelArgs
|
|
Network.GRPC.Unsafe.ByteBuffer
|
|
Network.GRPC.Unsafe.Metadata
|
|
Network.GRPC.Unsafe.Op
|
|
Network.GRPC.Unsafe
|
|
Network.GRPC.LowLevel
|
|
Network.GRPC.LowLevel.Server.Unregistered
|
|
Network.GRPC.LowLevel.Client.Unregistered
|
|
Network.GRPC.LowLevel.CompletionQueue
|
|
Network.GRPC.LowLevel.CompletionQueue.Internal
|
|
Network.GRPC.LowLevel.CompletionQueue.Unregistered
|
|
Network.GRPC.LowLevel.GRPC
|
|
Network.GRPC.LowLevel.Op
|
|
Network.GRPC.LowLevel.Server
|
|
Network.GRPC.LowLevel.Call
|
|
Network.GRPC.LowLevel.Call.Unregistered
|
|
Network.GRPC.LowLevel.Client
|
|
Network.GRPC.HighLevel
|
|
Network.GRPC.HighLevel.Server
|
|
extra-libraries:
|
|
grpc
|
|
includes:
|
|
include/grpc_haskell.h
|
|
, grpc/grpc.h
|
|
, grpc/status.h
|
|
, grpc/support/time.h
|
|
, grpc/impl/codegen/compression_types.h
|
|
, grpc/impl/codegen/slice_buffer.h
|
|
, grpc/impl/codegen/slice.h
|
|
build-tools: c2hs
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind
|
|
include-dirs: include
|
|
hs-source-dirs: src
|
|
default-extensions: CPP
|
|
if flag(debug)
|
|
CPP-Options: -DDEBUG
|
|
CC-Options: -DGRPC_HASKELL_DEBUG
|
|
|
|
executable echo-server
|
|
if flag(with-examples)
|
|
build-depends:
|
|
base ==4.8.*
|
|
, async
|
|
, bytestring == 0.10.*
|
|
, containers ==0.5.*
|
|
, grpc-haskell
|
|
, proto3-wire
|
|
, protobuf-wire
|
|
, text
|
|
else
|
|
buildable: False
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -g -threaded
|
|
hs-source-dirs: examples/echo/echo-server
|
|
main-is: Main.hs
|
|
|
|
executable echo-client
|
|
if flag(with-examples)
|
|
build-depends:
|
|
base ==4.8.*
|
|
, async
|
|
, bytestring == 0.10.*
|
|
, containers ==0.5.*
|
|
, grpc-haskell
|
|
, proto3-wire
|
|
, protobuf-wire
|
|
, text
|
|
else
|
|
buildable: False
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -g -threaded
|
|
hs-source-dirs: examples/echo/echo-client
|
|
main-is: Main.hs
|
|
|
|
test-suite test
|
|
build-depends:
|
|
base ==4.8.*
|
|
, grpc-haskell
|
|
, bytestring ==0.10.*
|
|
, unix
|
|
, time
|
|
, async
|
|
, tasty >= 0.11 && <0.12
|
|
, tasty-hunit >= 0.9 && <0.10
|
|
, containers ==0.5.*
|
|
, managed >= 1.0.5 && < 1.1
|
|
, pipes ==4.1.*
|
|
, transformers
|
|
, safe
|
|
, clock ==0.6.*
|
|
other-modules:
|
|
LowLevelTests,
|
|
LowLevelTests.Op,
|
|
UnsafeTests
|
|
default-language: Haskell2010
|
|
ghc-options: -Wall -fwarn-incomplete-patterns -fno-warn-unused-do-bind -g -threaded
|
|
hs-source-dirs: tests
|
|
main-is: Properties.hs
|
|
type: exitcode-stdio-1.0
|
|
default-extensions: CPP
|
|
if flag(debug)
|
|
CPP-Options: -DDEBUG
|
|
CC-Options: -DGRPC_HASKELL_DEBUG
|