I didn&#x27;t quite follow how cppyy&#x2F;Reflex works (and the Reflex link is broken).  But I work on Python Protobuf at Google and wanted to clear up a few things about that.<p>&gt; Protobuf&#x27;s compiler generates Python code which relies on a CPython extension in order to interface with the Protobuf implementation and is I mentioned before this is not going to be as fast as it should be for PyPy. Google provides a pure python implementation of Protobuf in version 3.0 which is not yet release and breaks compatibility in some aspects from Protobuf 2.x.<p>Protobuf 2.6 has both a pure-Python implementation and a C++-accelerated one, just like Protobuf 3.0.  The C++-accelerated one is only necessary if you want the performance benefits.<p>Also, Protobuf 3.0 does not break any compatibility with Protobuf 2.x. Protobuf 3.0 <i>does</i> contain a new protocol version &quot;proto3&quot;, which differs in some ways from the previous protocol version &quot;proto2&quot;.  But Protobuf 3.0 supports both proto2 and proto3, and the two are completely interoperable with each other.  Basically, each message you define is either proto2 or proto3.  Any proto2 messages you define with Protobuf 3.0 are 100% compatible with proto2 messages in Protobuf 2.x.