I am actively pursuing moving a proprietary RPC mechanism to GRPC. And the languages currently needed are Ruby, Go, and Java.
I didn't realize before trying a few things today that the newly added languages/platforms in proto3 (e.g. Ruby) cannot generate code via protoc for language level 2. This looks like it could be a serious blocker for what I and my team want to do. Is this stance, to not support language level 2, a hard stance? We cannot (nor do we even want to) move all of our protos to language level 3. We use extensions. *If we wanted to contribute a patch to protoc to support language level 2 in Ruby, would it be accepted?* We could likely make due with the changes in semantics for default values and unknown fields/enum values. So we could just run the existing language-level-3 code-gen against language level 2 source files. But we'd need to implement some mechanism to support extensions. If such a patch would never be accepted, would it be feasible for us to use a 3rd party proto gem for Ruby with GRPC? I'm quite familiar with the Java implementation of GRPC and know that it has a layer that is independent from protos (which, in Java, enables the use of Nano instead of the standard Java runtime). This could be used to support different mechanisms for marshalling data, including even alternate IDLs and formats (thrift, JSON, etc). Is the C implementation (and Ruby bindings) architected this way, too? If so, it seems like it should be possible to graft non-protoc generated protos onto GRPC. ---- *Josh Humphries* Manager, Shared Systems | Platform Engineering Atlanta, GA | 678-400-4867 *Square* (www.squareup.com) -- 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.