README.md

Ruby Protocol Buffers

Protocol Buffers are a way of encoding structured data in an efficient yet
extensible format. Google uses Protocol Buffers for almost all of its internal
RPC protocols and file formats.

This library has two components: a compiler to turn .proto definitions
into Ruby modules (extension .pb.rb), and a runtime to use protocol
buffers defined by these modules. The compiler relies on Google's C++ based
compiler (+protoc+) for much of the heavy lifting -- this has huge advantages in
ensuring compatibility and correctness.

This library is heavily optimized for encoding and decoding speed. There is a
small C extension available in the ext/ dir that will improve performance even
further, but it is currently disabled to avoid rubygems having to compile a
native extension. TODO: anybody know if we can make this optional?

Because this is a tool for generating code, the RDoc documentation is a bit
unusual. See the text in the ProtocolBuffers::Message class for details on what
code is generated.

Installation

You'll need protoc version >= 2.2 (the Google Protocol Buffer compiler)
installed in the environment where you will be compiling protocol buffers. This
is only needed for compiling, you don't need it installed to use the generated
.pb.rb files. You do need this Ruby library installed to use the
.pb.rb files, for the runtime support.