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