localshred/protobuf — pull request #109 by localshred (2013-07-24 16:10:15+00:00)
Title: Compiler support for libprotoc <= 2.5.0

Replaces the C++ generator with protoc-gen-ruby.
Per the protobuf Language Guide recommendation[1], I've rewritten the
generator to be plugin-based. That is, a ruby program that reads from
STDIN a CodeGeneratorRequest message and writes to STDOUT a
CodeGeneratorResponse message.

This makes the generator more flexible since we can utilize ruby to
generate the correct ruby classes for a given proto. And we like ruby.

This has the ultimate benefit that we will be able to support new
versions of libprotoc much easier since it simply involves updating the
plugin.pb and descriptor.pb files on a new release. Obviously we'd want
to evolve the message DSL to support new released features, but at the
very least this change makes it so that the the compiler doesn't care
which version of libprotoc you have installed on your machine. It Just
Works™.

[1]:
https://developers.google.com/protocol-buffers/docs/reference/other