protoc protobuf objective-c xcode protocol-buffers

objective-c - protoc - protobuf python



Usando Protocol Buffers con Objective-C (5)

Protocol Buffers v3 soporta Objective-C

Protocol Buffers v3 admite Objective-C como lenguaje de primera clase.

Para generar un código Objective-C desde un archivo .proto , llame al compilador con la opción objc_out :

protoc --proto_path=src --objc_out=build/gen src/foo.proto src/bar/baz.proto

¿Alguien ha utilizado los Protocol Buffers de Google al desarrollar aplicaciones en Objective-C?

¿Hay proyectos actuales para compilar archivos .proto en Objective-C, todos los documentos de Google se refieren simplemente a Java, C ++ o Python?


Esto puede o no ser útil, pero Apache Thrift (originalmente desarrollado en Facebook) es compatible con Cocoa, y parece que hay personas que intentan usarlo en el iPhone.

Thrift oficialmente soporta más idiomas. Pero los Protocol Buffers tienen 5 veces más interés en el desbordamiento de pila, por lo que quién sabe si es un buen reemplazo en términos de mantenimiento, ¡sin mencionar la compatibilidad con su propio proyecto! Aún así, tal vez sea digno de consideración.

Acabo de hacer una pregunta relacionada que puede encontrar útil si obtiene buenas respuestas: ¿Ha tenido éxito con Apache Thrift en el iPhone?


He estado trabajando en un tenedor del proyecto de Cyrus. Se basa en protobuf 2.3 y funciona como un complemento protoc ( protoc-gen-objc ) en lugar de requerir una distribución modificada de protobuf.

Puede encontrarlo como el proyecto protobuf-obj en GitHub.


La página de terceros muestra este puerto Objective-C . Desafortunadamente, el proyecto parece estar vacío en este momento, pero es alentador verlo de todos modos. Había escuchado rumores internos sobre el proyecto, pero no lo había visto como un proyecto de código abierto hasta hoy.

Puede ponerse en contacto con el propietario del proyecto (Cyrus Najmabadi) para preguntar al respecto ...

(Pequeño fragmento de trivia: Cyrus solía trabajar en el equipo de C # en Microsoft antes de unirse a Google).


Prefiero usar clases generadas en c ++ dentro de mis proyectos de objc, funciona bien.

Probé la versión objc PB pero sin éxito.