On Wed, Apr 19, 2017 at 1:26 PM, Rohan Suri <[email protected]> wrote:
> You create a descriptor by using --descriptor_set_out right? > That's right. You can make that part of your build process and embed the generated data file into your binary however you want. > Followed by creating FileDescriptorProto by using > parseFrom(FileInputStream)? > > And moving forward as stated here https://groups.google.com/d/ > msg/protobuf/bWlJaaMmx4Q/kIYJ1-5YRb0J > > > On Wednesday, April 19, 2017 at 11:43:42 PM UTC+5:30, Feng Xiao wrote: >> >> 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 <[email protected]> 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 <[email protected]> >>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>> >>>> >>>>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> 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 [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
