* concurrent echo client for stress testing
* update examples for benchmarking, tweak cabal file
* mark frequently-used call as unsafe for performance boost
* add unsafe annotation to non-blocking C calls on critical path
* more unsafe annotations -- server performance almost doubled now
* one CQ for all call ops
* unsafe annotation on start_batch
* wait for all client threads, replace error with fail
* add -O2
* remove parent ptr from unregistered calls -- unneeded
* begin unregistered high level server loop
* undo changes to highlevel server, add mkConfig for unregistered server
* move call CQ create/destroy into call create/destroy
* async normal call function
* preliminary unregistered server loop for non-streaming methods
* working unregistered highlevel example
* loop counters for benchmarking
* changes for benchmarking, add ruby example server for benchmarking
* async version of withCall, refactor unregistered server loop to handle all method types
* unregistered client streaming
* add remaining streaming modes
* unregistered server streaming test
* unregistered streaming tests
* add error logging
* fix bug in add example
* remove old TODOs
* fix bug: don't assume slices are null-terminated
* add TODO re: unregistered client streaming functions
* 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
* initial echo client/server examples
* registered and unregistered versions of the example client
* ignore pyc files
* cpp echo code, flag to build examples
* threaded server example