You should read the language guides for proto2 or proto3 before reading this document. The protocol compiler for Ruby emits Ruby source files that use a DSL to define the message schema. However the DSL is still subject to change. In this guide we only describe the API of the generated messages, and not the DSL. Compiler Invocation The protocol buffer compiler produces Ruby output when invoked with the --ruby_out= command-line flag.