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.

Reply via email to