其他语言
protoc,Protocol Buffers 编译器,可以通过插件扩展以支持新的语言。
虽然当前版本包括 C++、Java、Go、Ruby、C# 和 Python 的编译器和 API,但编译器代码的设计使其可以轻松添加对其他语言的支持。目前有几个正在进行的项目,旨在为 Protocol Buffers 添加新的语言实现,包括 C、Haskell、Perl、Rust 等。
有关我们了解的项目的链接列表,请参阅 第三方附加组件 Wiki 页面。
编译器插件
protoc
,Protocol Buffers 编译器,可以通过插件扩展以支持新的语言。插件只是一个程序,它从标准输入读取 CodeGeneratorRequest
协议缓冲区,然后将 CodeGeneratorResponse
协议缓冲区写入标准输出。这些消息类型在 plugin.proto
中定义。我们建议所有第三方代码生成器都编写为插件,因为这允许所有生成器提供一致的接口并共享单一的解析器实现。
插件可以用任何编程语言编写,但 Google 拥有的插件是用 C++ 编写的。如果您要编写自己的插件,您可能会发现使用 C++ 编写插件最容易,以便能够遵循这些示例并重用实用程序。
此外,插件能够将代码插入到其他代码生成器生成的文件中。有关此方面的更多信息,请参阅 plugin.proto
中关于“插入点”的注释。例如,这可以用于编写一个插件,该插件生成为特定 RPC 系统量身定制的 RPC 服务代码。请参阅每种语言的生成代码的文档,以了解它们提供了哪些插入点。