rsocket-go icon indicating copy to clipboard operation
rsocket-go copied to clipboard

L37: Go Custom Transports

Open linux-china opened this issue 6 years ago • 1 comments

Make gRPC run on RSocket transports:

  • Transports message-based: wrapper metadata(gRPC metadata) and data in Payload
  • ServeTransport & ClientTransport: almost same in RSocket transportation implementation.

https://github.com/grpc/proposal/pull/103/files https://github.com/grpc/proposal/blob/9b5e98916beeb8955264b28c54b8ffbdaa1d12fa/L37-go-custom-transports.md

An RSocket adapter for gRPC transportation and make RSocket and gRPC interoperate each other. Some consideration as following:

  • A new metadata specification for gRPC in Composite Metadata: message/x.grpc.v0 https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md Please consider to use tagging metadata https://github.com/rsocket/rsocket-java/blob/develop/rsocket-core/src/main/java/io/rsocket/metadata/TaggingMetadata.java
  • idl to RSocket models: rpc to request/response, stream to request/stream

References:

  • Reactive stubs for gRPC: https://github.com/salesforce/reactive-grpc

linux-china avatar Jan 27 '20 19:01 linux-china

I think that should be an independent project(eg: rsocket-plugin-grpc-go) and we have rsocket-rpc-go already. Anyway, we should wait for L37 proposal to be accepted in GRPC. Then we can create a sub-project. I'll implement TaggingMetadata first.

jjeffcaii avatar Jan 28 '20 03:01 jjeffcaii