Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Client Streaming Enhancements #3284

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

jclyne
Copy link
Contributor

@jclyne jclyne commented Feb 10, 2025

Adds GrpcServerStreamingCall and GrpcClientStreamingCall to differentiate between server and client streaming gRPC calls. The current logic is to use a GrpcStreamingCall , which is used for Server, Client and Bidrectional streaming.
The GrpcServerStreamingCall accepts an single request and returns a ReceiveChannel/MessageSource for streaming responses
The GrpcClientStreamingCall returns SendChannel/Deferred or MessageSink/GrpcDeferredResponse pair to stream requests from the client and retrieve the single, deferred response

Both the GrpcServerStreamingCall and GrpcClientStreamingCall make use of a GrpcStreamingCall under the hood, but more tightly enforce the calling semantics of the underlying call.

This is optional and defaults to using GrpcStreamingCall for every call. The explicitStreamingCalls option enables generation of the explicit types.

NOTE: The use of Server vs Response streaming and Client vs Request streaming was chosen to differentiate Bidirectional streaming which is both Response and Request streaming. Its also the terminology used here . Clearly either would work, but that was the reasoning behind the naming.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant