I think it's 100% complete for proto3, checkout the javadoc and tests. Doesn't support proto2 syntax at all However.
On Fri, Feb 21, 2020, 10:59 AM ittai zeidman <[email protected]> wrote: > Awesome! > This thread is full of gems after the few days of me banging my head :) > How complete would you say protopoet is? Have you used it to generate > proto files anywhere? > > On Fri, 21 Feb 2020 at 19:06 Derek Perez <[email protected]> wrote: > >> I wrote a library for doing this: https://github.com/perezd/protopoet >> >> On Fri, Feb 21, 2020, 5:57 AM Alex Van Boxel <[email protected]> wrote: >> >>> Congratulations, cool to see other people using it ;-) >>> >>> Indeed, I rather have it part protobuf-java before haven maven-artifact. >>> You can fill issues on the metastore repo, it's not abandoned. It's >>> activity developed (I'll copy issues over when a move is ever node. >>> >>> _/ >>> _/ Alex Van Boxel >>> >>> >>> On Fri, Feb 21, 2020 at 2:54 PM ittai zeidman <[email protected]> wrote: >>> >>>> Good news! >>>> I was able to get this out: >>>> syntax = "proto3"; >>>> message messageGreeting { >>>> string greeting = 1; >>>> } >>>> Thanks! >>>> I'll report more after I'll have more time to test out the corner cases >>>> and richness. >>>> If I find issues would you rather we continue here, github issue, >>>> somewhere else? >>>> Also I was unable to find this artifact on maven central or jcenter >>>> <https://bintray.com/search?query=io.anemos>. I copied the files for >>>> the meantime but I'd rather add a dependency and not fork the code. >>>> >>>> On Fri, Feb 21, 2020 at 2:43 PM Alex Van Boxel <[email protected]> >>>> wrote: >>>> >>>>> Actually your question triggered something I wanted todo for a long >>>>> time. You could join the discussion on this thread: >>>>> https://groups.google.com/forum/#!topic/protobuf/NrhCXiXIfxk >>>>> >>>>> _/ >>>>> _/ Alex Van Boxel >>>>> >>>>> >>>>> On Fri, Feb 21, 2020 at 1:23 PM ittai zeidman <[email protected]> >>>>> wrote: >>>>> >>>>>> Nice! Thanks :) >>>>>> I’ll try it out and report back... >>>>>> >>>>>> On Fri, 21 Feb 2020 at 14:06 Alex Van Boxel <[email protected]> wrote: >>>>>> >>>>>>> You can use this class from the metastore. A lot of work has pored >>>>>>> into this class. The plan is to actually donate this to the proto-java >>>>>>> implementation if it has been battle tested. >>>>>>> >>>>>>> >>>>>>> https://github.com/anemos-io/metastore/blob/master/putils/src/main/java/io/anemos/metastore/putils/ProtoLanguageFileWriter.java >>>>>>> >>>>>>> It currently only support proto3. >>>>>>> >>>>>>> _/ >>>>>>> _/ Alex Van Boxel >>>>>>> >>>>>>> >>>>>>> On Fri, Feb 21, 2020 at 11:02 AM Nadav Samet <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi Ittai, >>>>>>>> >>>>>>>> It sounds like you are expecting your plugin to emit proto files in >>>>>>>> text format. Your code is assigning binary data into the file's >>>>>>>> content, >>>>>>>> and what protoc does is just writing it to the files it creates. >>>>>>>> There's >>>>>>>> nothing that would automatically detect that you are passing a >>>>>>>> DescriptorProto and would transform that into text representation. If >>>>>>>> you >>>>>>>> want the output to be in text format you need to manually create a >>>>>>>> string >>>>>>>> with the file content you want. >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Feb 21, 2020 at 11:40 AM ittai zeidman <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> I have proto files which contain valid proto messages and services >>>>>>>>> and my own DSL which I want to transpile into proto messages and >>>>>>>>> services. >>>>>>>>> My idea is to invoke protoc and have it process "my proto" with a >>>>>>>>> protoc plugin that will emmit "standard proto" (which I'll later feed >>>>>>>>> into protoc again). >>>>>>>>> The reason I'm going through the intermediate proto files is because >>>>>>>>> we need them to integrate with other systems. >>>>>>>>> >>>>>>>>> I'm trying to write this plugin using protobuf-java (jvm developer) >>>>>>>>> but the proto file that is emitted is incorrect. >>>>>>>>> >>>>>>>>> I think (and hope) I'm doing something stupid and maybe someone here >>>>>>>>> can point me to the right direction. >>>>>>>>> >>>>>>>>> >>>>>>>>> Thanks in advance... >>>>>>>>> >>>>>>>>> >>>>>>>>> Some of my code (to generate a hardcoded proto file with one >>>>>>>>> message and one field): >>>>>>>>> >>>>>>>>> DescriptorProtos.DescriptorProto protoMessage = >>>>>>>>> DescriptorProtos.DescriptorProto.newBuilder() >>>>>>>>> .setName("messageGreeting") >>>>>>>>> .addField(DescriptorProtos.FieldDescriptorProto.newBuilder() >>>>>>>>> .setName("greeting") >>>>>>>>> .setType(FieldDescriptorProto.Type.TYPE_STRING) >>>>>>>>> .setNumber(0) >>>>>>>>> .setDefaultValue("hi") >>>>>>>>> .build() >>>>>>>>> ) >>>>>>>>> .build(); >>>>>>>>> DescriptorProtos.FileDescriptorProto proto = >>>>>>>>> DescriptorProtos.FileDescriptorProto.newBuilder() >>>>>>>>> .addMessageType( >>>>>>>>> protoMessage >>>>>>>>> ) >>>>>>>>> .build(); >>>>>>>>> ByteArrayOutputStream byteArrayOutputStream = new >>>>>>>>> ByteArrayOutputStream(); >>>>>>>>> >>>>>>>>> proto.writeTo(byteArrayOutputStream); // should be lazy? >>>>>>>>> >>>>>>>>> CodeGeneratorResponse.File file = >>>>>>>>> CodeGeneratorResponse.File.newBuilder() >>>>>>>>> .setName("yo.proto") >>>>>>>>> >>>>>>>>> .setContentBytes(ByteString.copyFrom(byteArrayOutputStream.toByteArray)) >>>>>>>>> >>>>>>>>> // I also tried: >>>>>>>>> >>>>>>>>> // .mergeFrom(protoMessage) >>>>>>>>> // .setContent(byteArrayOutputStream.toString) // should be lazy? >>>>>>>>> // .mergeFrom(byteArrayOutputStream.toByteArray) >>>>>>>>> .build(); >>>>>>>>> file.toByteArray >>>>>>>>> >>>>>>>>> >>>>>>>>> Unfortunately what I get is: >>>>>>>>> >>>>>>>>> cat yo.proto: >>>>>>>>> "% >>>>>>>>> messageGreeting >>>>>>>>> >>>>>>>>> >>>>>>>>> greeting( :hi% >>>>>>>>> >>>>>>>>> and in a text editor: >>>>>>>>> 2225 0a0f 6d65 7373 6167 6547 7265 6574 >>>>>>>>> 696e 6712 120a 0867 7265 6574 696e 6718 >>>>>>>>> 0028 093a 0268 69 >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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 view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/protobuf/03f1f05d-a9ef-4490-bf6a-469f16212f9f%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/protobuf/03f1f05d-a9ef-4490-bf6a-469f16212f9f%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> -Nadav >>>>>>>> >>>>>>>> -- >>>>>>>> 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 view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/protobuf/CANZcNEryh5FBtZQ%3D4_EZuy5N21JeMxJ6NTjhR2T68DM5s9OWtw%40mail.gmail.com >>>>>>>> <https://groups.google.com/d/msgid/protobuf/CANZcNEryh5FBtZQ%3D4_EZuy5N21JeMxJ6NTjhR2T68DM5s9OWtw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>>> . >>>>>>>> >>>>>>> -- >>>>>> 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 view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/protobuf/CAOfK4wVpcbhpsN4eDmfprt4w-cB251mhXcrWp5hid%2B%3DXqtbFDw%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/protobuf/CAOfK4wVpcbhpsN4eDmfprt4w-cB251mhXcrWp5hid%2B%3DXqtbFDw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>> 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 view this discussion on the web visit >>>> https://groups.google.com/d/msgid/protobuf/CAOfK4wUveFVMubfbRTq3cDgaswG5qeS5mvsPHoXGRPeYSxe%2BrQ%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/protobuf/CAOfK4wUveFVMubfbRTq3cDgaswG5qeS5mvsPHoXGRPeYSxe%2BrQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> 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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/protobuf/CALCMntvLHG6ArsMRfe0fGj3t08qwRtTRe-qCZ31yPxGQj6qRNw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/protobuf/CALCMntvLHG6ArsMRfe0fGj3t08qwRtTRe-qCZ31yPxGQj6qRNw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/protobuf/CAOfK4wVJWcbnCCRzQMfmy9FSKeJY-V77KV2XFhuyaUMWhpVvTg%40mail.gmail.com > <https://groups.google.com/d/msgid/protobuf/CAOfK4wVJWcbnCCRzQMfmy9FSKeJY-V77KV2XFhuyaUMWhpVvTg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CAD7-yfvPkQTCKs1LknKTsoW9F4%3DfSeX7Rni240OXncWG4AESrw%40mail.gmail.com.
