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