##########
pyprotobuf
##########


A python protocol buffers compiler
##################################


Converts from .proto to:

* python protorpc
* Closure library externs
* Closure library goog.proto2


Visit http://code.google.com/p/pyprotobuf for more information.

Installation
############


From PyPi::

    pip install pyprotobuf


Usage
#####

.. program:: pyprotoc

.. option:: --format

    Select the output format

.. option:: -h, --help

    Show a help message
    
    
Usage::
    
    usage: pyprotoc [-h] [--format {closure,python,externs}] paths [paths ...]
    
    positional arguments:
      paths
    
    optional arguments:
      -h, --help            show this help message and exit
      --format {closure,python,externs}

      
Example
#######

Input file (test.proto)::

    option javascript_package = "com.example";
    
    message Item {
      optional string aString = 1;
      optional int32 aNumber = 2;
      required string aRequiredString = 3;
      repeated string aRepeatedString = 4;
    }
    
Generated python rpc (`protopy --format python test.proto`)::
    
    from protorpc import messages
    
    class Item(messages.Message):
        aString = messages.StringField(1)
        aNumber = messages.IntegerField(2)
        aRequiredString = messages.StringField(3, required=True)
        aRepeatedString = messages.StringField(4, repeated=True)
        
Generated javascript externs(`protopy --format externs test.proto`)::
    
    /** @constructor */
    com.example.Item = function(){};
    
    /** @type {string} */
    com.example.Item.prototype.aString;
    
    /** @type {number} */
    com.example.Item.prototype.aNumber;
    
    /** @type {string} */
    com.example.Item.prototype.aRequiredString;
    
    /** @type {[string]} */
    com.example.Item.prototype.aRepeatedString;
    
    
    
Development
###########

Contributions are welcome.