I'm also looking for a similar solution. I wish to be able to use Protobuf to glue components of cross platform product together. Currently, the product is composed of 4 projects: Android (Kotlin), Windows (.net), IOS (Swift), MacOS (Swift). There are 4 separate teams working on each project. Communication is really difficult between the projects when trying to implement something in a unified way. There have been many attempts made, but they all failed due to difficulty of interfacing between each app and the library. This is where we want to turn to something like Protobuf to allow us to write some of the code in a cross platform library, using Rust or C++.
The final vision would be to have all the interfaces between apps and libraries be written in Protobuf. Messages would be used to define the structures for each library function. Services would be used to define the available functions of the library. gRPC, in its current state, is not very desirable. It requires a client and a server. Hosting a server on the client would be a waste. Nobody wants to deal with network stack when trying to interface with a local library. My outlook is that gRPC should allow anyone to implement their own transport layer. Basically, gRPC should serialize the service method calls, with the arguments, into a buffer, just like messages are serialized. Then, the app should be able to implement whatever transport they want for the buffer. Be it over network, or just sending it from C++ to C#. Finally, on the other end, gRPC should be able to read the serialized function call stream, decode it and dispatch appropriate service methods. After doing some investigation, I found the "option java_generic_services = true;". As my heart filled with joy, I fired up protoc compiler and attempted to see what code would be generated. To my dismay, I didn't see a serialized service method call buffer, but rather interfaces that would require me to do all the serialization / deserialization myself. I really hope there is a project hidden somewhere that is attempting to do what I describe here. I would be happy to contribute, as it would solve a lot of problems for me. On Thursday, October 22, 2020 at 9:14:49 AM UTC+3 Semyon Baren wrote: > Hi all. > I am trying to use in-process transport for my project. > At this stage I just want to be able to test it with the "Hello world" > example. > I searched for documentation on how can I choose the underlying transport > but without a luck. I didn't find any code snippets that might be of help > for me, especially for c++. > > So to sum up, I would like to be able to run the Hello world example with > inproc transport. > > Hope you could help. > Thanks, > Semyon. > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/3fc42bea-1988-4083-91b1-3343bd84e9ffn%40googlegroups.com.