Challenge solutions
Challenge 1 – Descriptors
In this challenge, we need to use the --descriptor_set_out
flag to generate binary out of our schema. Let us define a simple schema (name.proto
):
syntax = "proto3"; message Name { string name = 1; }
To generate a FileDescriptorSet
out of it, we need to run the following command:
$ protoc --descriptor_set_out=name.desc name.proto
This will create a name.desc
file that we can then analyze.
Now, the second step is to use --decode
to set the internals of the FileDescriptorSet
. To do that, assuming that you have the descriptor.proto
file in /usr/local/include/google/protobuf
, you can run the following:
$ cat name.desc | protoc -I/usr/local/include/google/protobuf --decode=google.protobuf.FileDescriptorSet /usr/local/include/google/protobuf/descriptor.proto
This should output something like this:
file { name: "name.proto" message_type { &...