[ { "protoType": "double", "notes": "", "cppType": "double", "csType": "double", "goType": "float64", "javaType": "double", "phpType": "float", "pythonType": "float", "rubyType": "Float" }, { "protoType": "float", "notes": "", "cppType": "float", "csType": "float", "goType": "float32", "javaType": "float", "phpType": "float", "pythonType": "float", "rubyType": "Float" }, { "protoType": "int32", "notes": "Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.", "cppType": "int32", "csType": "int", "goType": "int32", "javaType": "int", "phpType": "integer", "pythonType": "int", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "int64", "notes": "Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.", "cppType": "int64", "csType": "long", "goType": "int64", "javaType": "long", "phpType": "integer/string", "pythonType": "int/long", "rubyType": "Bignum" }, { "protoType": "uint32", "notes": "Uses variable-length encoding.", "cppType": "uint32", "csType": "uint", "goType": "uint32", "javaType": "int", "phpType": "integer", "pythonType": "int/long", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "uint64", "notes": "Uses variable-length encoding.", "cppType": "uint64", "csType": "ulong", "goType": "uint64", "javaType": "long", "phpType": "integer/string", "pythonType": "int/long", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "sint32", "notes": "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.", "cppType": "int32", "csType": "int", "goType": "int32", "javaType": "int", "phpType": "integer", "pythonType": "int", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "sint64", "notes": "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.", "cppType": "int64", "csType": "long", "goType": "int64", "javaType": "long", "phpType": "integer/string", "pythonType": "int/long", "rubyType": "Bignum" }, { "protoType": "fixed32", "notes": "Always four bytes. More efficient than uint32 if values are often greater than 2^28.", "cppType": "uint32", "csType": "uint", "goType": "uint32", "javaType": "int", "phpType": "integer", "pythonType": "int", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "fixed64", "notes": "Always eight bytes. More efficient than uint64 if values are often greater than 2^56.", "cppType": "uint64", "csType": "ulong", "goType": "uint64", "javaType": "long", "phpType": "integer/string", "pythonType": "int/long", "rubyType": "Bignum" }, { "protoType": "sfixed32", "notes": "Always four bytes.", "cppType": "int32", "csType": "int", "goType": "int32", "javaType": "int", "phpType": "integer", "pythonType": "int", "rubyType": "Bignum or Fixnum (as required)" }, { "protoType": "sfixed64", "notes": "Always eight bytes.", "cppType": "int64", "csType": "long", "goType": "int64", "javaType": "long", "phpType": "integer/string", "pythonType": "int/long", "rubyType": "Bignum" }, { "protoType": "bool", "notes": "", "cppType": "bool", "csType": "bool", "goType": "bool", "javaType": "boolean", "phpType": "boolean", "pythonType": "boolean", "rubyType": "TrueClass/FalseClass" }, { "protoType": "string", "notes": "A string must always contain UTF-8 encoded or 7-bit ASCII text.", "cppType": "string", "csType": "string", "goType": "string", "javaType": "String", "phpType": "string", "pythonType": "str/unicode", "rubyType": "String (UTF-8)" }, { "protoType": "bytes", "notes": "May contain any arbitrary sequence of bytes.", "cppType": "string", "csType": "ByteString", "goType": "[]byte", "javaType": "ByteString", "phpType": "string", "pythonType": "str", "rubyType": "String (ASCII-8BIT)" } ]