Cool, that's exactly the stuff I was interested in. (I was actually trying to figure out why implementing "grpc-web" is not a trivial problem. :))
On Thu, Feb 23, 2017 at 12:33 PM, Axel Wagner <[email protected] > wrote: > From what I know, a) with the normal protobuf package, you can not en- or > decode and then reflect messages by the proto descriptor, you need to > compile in the generated code - adding methods to a reflect-created struct > alone doesn't help, as the package also has some assumptions about the > representation of the type, from what I can tell. And b) you can not invoke > reflected RPC calls with the go grpc implementation. Related issues are > https://github.com/golang/protobuf/issues/199 > https://github.com/grpc/grpc-go/issues/866 > > On Thu, Feb 23, 2017 at 1:16 PM, Ivan Vučica <[email protected]> wrote: > >> What I want, in the end, is to send a gRPC request based on an ASCII or >> JSON representation of a protobuf, receive a response and display it. >> >> Essentially, if you take grpc_cli tool present in the repo of C >> implementation of gRPC, I would like to implement its "call" functionality. >> >> Even though trying to construct a binary protobuf /might/ be a dead end >> depending on how I would have to invoke the RPC itself, building a >> proto.Message out of a remote protobuf descriptor happens to be an >> interesting problem in itself. >> >> It'd be less than fun if the solution is to write yet another proto >> serializer/deserializer. And I didn't even check if, when using grpc-go, I >> can invoke a remote gRPC method using just its name... >> >> Of course, if you have another shortcut that I missed in grpc-go's APIs >> or in Go protobuf's APIs, that'd be great, too ☺️ >> >> On Thu, Feb 23, 2017, 02:57 Matt Harden <[email protected]> wrote: >> >>> Is the intermediate Go struct necessary, or do you just want to convert >>> a text proto to a binary representation? >>> >>> On Wed, Feb 22, 2017 at 6:10 PM <[email protected]> wrote: >>> >>> Hi, >>> >>> I'm fiddling with gRPC and its service reflection. I discovered a neat >>> package (github.com/jhump/protoreflect) that let me quickly enumerate >>> the services that are exposed by the gRPC server, the RPCs that are in >>> those gRPC services, and finally the proto messages that are used as inputs >>> and outputs. >>> >>> Later, I'll worry about how to actually send out the RPC. >>> >>> For now, I'm trying to unserialize a text proto message into a >>> dynamically constructed Go struct, which I'd then serialize back into a >>> binary proto. >>> >>> I'd like to make the generated struct satisfy the proto.Message >>> interface. There are three methods required by that interface. >>> >>> How would one go about attaching the required methods onto the newly >>> constructed type? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "golang-nuts" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
