Thank you. Appreciate the help.

On Wed, Feb 8, 2017 at 12:42 PM, 'Carl Mastrangelo' via grpc.io <
[email protected]> wrote:

> gRPC is designed as two parts:  a core library, and a code generator.  The
> core library is what does the actual network part of the RPC, taking care
> to do the interesting things like deadlines, cancellation, load balancing,
> name resolution, flow control, etc.  This is too specific for most users,
> so there needs to be a simpler API on top.  The code generator part takes
> in a Protobuf file and generates a simplified API for client and server
> applications to use.  It is on top of the core, and not strictly necessary
> to have.
>
> The generated code makes things for you like strongly typed Stubs,
> automatic flow control, and of interest to you: Marshallers for the data.
> Since the core library is encoder agnostic, a marshaller implementation is
> necessary to turn raw bytes into message objects.  Additionally, the
> generated code for protobuf is self describing, so if a client wishes to
> find out what services a server exports, the server can look at this
> reflection info to tell the client.
>
> We recognize that not everyone wants to use Protobuf, so we separate the
> two parts.  However, since Google is a Protobuf shop, and pretty much
> everything inside uses Protobuf, we provide the code generators to make it
> easy.  If you use Proto, you get the second part of gRPC for free.  If not,
> you can still implemented said features, but it will be up to you to write
> and maintain the code.
>
> I am more familiar with Java, so I can speak to that.  MethodDescriptor is
> a class that defines how a method is named, what type it is, and how to
> marshal and unmarshal data from the wire.  You can look in the grpc-java
> github repo to find examples (in the tests and generated code) on how to
> use it.  I don't know about msgpack, so you would need to figure out how to
> adapt it to the MethodDescriptor.Marshaller interface.
>
> On Wed, Feb 8, 2017 at 9:26 AM, Sanjay Bhandari <[email protected]>
> wrote:
>
>> Do you mind if I press you for some details? We are new to gRPC and
>> protobufs.
>>
>>    1. Are you saying the support for reflection is for protobufs only?
>>    On a tangent, what is reflection used for there? I mean, if the protobuf
>>    IDL generates code for the involved types, then in what context is
>>    reflection necessary?
>>
>>    2. Do you mind (if you know this) expanding on what we would need to
>>    do to use, say, msgpack, with gRPC? I mean, broadly, at a high level -
>>    enough for me to dive into the right code.
>>
>>    3. Is the use of the protobuf IDL optional? If we need to plugin a
>>    different serializer, do we need to provide a means to generate the type
>>    marshaling code for all involved type?
>>
>>
>> On Wed, Feb 8, 2017 at 12:04 PM, 'Carl Mastrangelo' via grpc.io <
>> [email protected]> wrote:
>>
>>> No, gRPC is encoder agnostic, but we make your life a lot easier if you
>>> do use it.  By default reflection will be proto only.  This isn't to say
>>> that you couldn't implement it yourself though.
>>>
>>> On Wed, Feb 8, 2017 at 8:56 AM, Sanjay Bhandari <[email protected]>
>>> wrote:
>>>
>>>> Ah OK. We are intending to use msgpack.
>>>>
>>>> Would you know, if we used an alternative serialization format, would
>>>> we still need to use the IDL (protobuf IDL)?
>>>>
>>>> Sanjay
>>>>
>>>> On Wed, Feb 8, 2017 at 11:54 AM, 'Carl Mastrangelo' via grpc.io <
>>>> [email protected]> wrote:
>>>>
>>>>> What language are you using?  In Java, you can define your own
>>>>> MethodDescriptor.Marshaller to do the conversion.
>>>>>
>>>>> On Tuesday, February 7, 2017 at 2:46:15 PM UTC-8, ziffusion wrote:
>>>>>>
>>>>>> I have a question about how gRPC would work with a serializing format
>>>>>> other than protobufs.
>>>>>>
>>>>>>
>>>>>> Where would I find information on this? Examples maybe.
>>>>>>
>>>>>>
>>>>>> When one uses a different serialization, do you still have to use the
>>>>>> IDL?
>>>>>>
>>>>>>
>>>>>> Help will be much appreciated!
>>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "grpc.io" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/grpc-io/DPgipyU0g5Y/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at https://groups.google.com/group/grpc-io.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/grpc-io/d800d6ce-3968-4953
>>>>> -9b74-1d072445cd03%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/grpc-io/d800d6ce-3968-4953-9b74-1d072445cd03%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "grpc.io" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>> pic/grpc-io/DPgipyU0g5Y/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/grpc-io.
>>> To view this discussion on the web visit https://groups.google.com/d/ms
>>> gid/grpc-io/CAAcqB%2BtNs9NqvZky9oxzoU%2BGc%3D9mXE2n4yvG8fSB1
>>> GgEmAP7RA%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/grpc-io/CAAcqB%2BtNs9NqvZky9oxzoU%2BGc%3D9mXE2n4yvG8fSB1GgEmAP7RA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "grpc.io" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/grpc-io/DPgipyU0g5Y/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/grpc-io.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/grpc-io/CAAcqB%2BsvZCgrj-oA2O1OpeCD68VJdV4Tb4zL5GxBR1Y5
> yPbQPw%40mail.gmail.com
> <https://groups.google.com/d/msgid/grpc-io/CAAcqB%2BsvZCgrj-oA2O1OpeCD68VJdV4Tb4zL5GxBR1Y5yPbQPw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CAGTUL_OnpvLZ41BNukOTRxMOrvpk2o1GZFo8mfnEz6a5EkaXZA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to