Skip to content

[gRPC] Is it a goal to support bidirectional streaming? #627

@drub0y

Description

@drub0y

Is it a goal of the gRPC transport to support bidirectional streaming? The current limitation of building gRPC clients on top of the ktor HTTP client itself is that it uses the platform specific abstractions for HTTP and, well, I think we all know that iOS hamstrings streaming with URLSession. So, if the kotlinx-rpc gRPC transport is going to just build on ktor HTTP only (vs say ktor Sockets), then we're going to be just as limited in terms of capabilities.

Of course, if you were going to implement full HTTP[/2] support on top of ktor Sockets, I doubt it would be just for this gRPC transport and you'd most likely transition ktor HTTP off the platform specific abstractions onto your full HTTP[/2] implementation, right? 😄 Therefore, I'm pretty sure it's safe to assume that there will not be bidirectional streaming support, but I figured I'd ask.

FWIW, this leaves us in a place where we either bail on gRPC and go in on WebSockets (trying to avoid that) or we end wrapping grpc-swift on top of SwiftNIO. It just feels crazy to have to do that when we're all in on KMP.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions