CodedInputStream is the right one to use for 1.

Invoking protoc compiler in production sounds problematic to me, though I'm
not aware of any document listing it explicitly as bad practice. I would
suggest avoid that and use other alternatives. For example, in Google we
build a protodb which contains FileDescriptorProto of all transitively
depended .proto files and use that instead of actual .proto files.

On Wed, Apr 19, 2017 at 10:39 AM Rohan Suri <rohan.a.s...@gmail.com> wrote:

> Hey Feng, thanks for your input.
>
> Any suggestions for 1) ? Other than using CodingInputStream?
>
> Also is it bad practise to invoke protoc compiler in a production
> environment?
>
> On Wednesday, April 19, 2017 at 11:00:17 PM UTC+5:30, Feng Xiao wrote:
>>
>>
>>
>> On Wed, Apr 19, 2017 at 4:20 AM, Rohan Suri <rohan....@gmail.com> wrote:
>>
>>> Hello everyone,
>>>
>>> I'm trying to find the right Java APIs to do what protoc --decode_raw
>>> and protoc --decode do.
>>> Essentially handling two cases:
>>> 1) When I don't have the proto, and only the raw protobuf msg.
>>> eg protoc --decode_raw < rawmsg.bin
>>>
>>> 1: "rohan"
>>> 2 {
>>>     1: "13"
>>>     2: "08"
>>>     3: "94"
>>> }
>>>
>>> 2) When I have the .proto(not the generated classes, neither the parsed
>>> .proto)
>>> eg protoc --decode some.pkg.name.Person $proto_file_path < rawmsg.bin
>>>
>>> name: "rohan"
>>> dob {
>>>      dd: "13"
>>>      mm: "08"
>>>      yy: "94"
>>> }
>>>
>>> I did dig google groups.
>>>
>>> From those the hints I've got is
>>> For case 1) Using CodedInputStream write my own parser? parsing bytes by
>>> making informed guesses.
>>>
>>> https://groups.google.com/forum/#!searchin/protobuf/
>>> decode$20without$20proto|sort:relevance/protobuf/
>>> 7s4YIwrQLgk/r2Yc_36OYGAJ
>>> http://stackoverflow.com/questions/19647387/parsing-a-
>>> raw-protocol-buffer-byte-stream-in-c-sharp/19652735#19652735
>>> http://stackoverflow.com/questions/13937882/parsing-
>>> protocol-buffers-without-knowing-the-proto
>>>
>>> For case 2) well nothing. Everything I got assumed I have
>>> FileDescriptorProto for my .proto or instance of my message type.
>>>
>>
>> 2) requires parsing .proto files and that parser is in C++ only.
>>
>
>>> Are there any add-on libraries present to handle these scenarios?
>>> Or any logic to go about solving them?
>>>
>>> Thanks.
>>>
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Protocol Buffers" group.
>>>
>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to protobuf+u...@googlegroups.com.
>>> To post to this group, send email to prot...@googlegroups.com.
>>
>>
>>> Visit this group at https://groups.google.com/group/protobuf.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to protobuf+unsubscr...@googlegroups.com.
> To post to this group, send email to protobuf@googlegroups.com.
> Visit this group at https://groups.google.com/group/protobuf.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to