一旦编写完,就可以使用protoc将protobuf规范编译成各种不同语言的实现(例如python、c++、go)。太好了。但是要编译生成的代码,您需要一个protobuf开发库,如果我没有弄错,也需要运行时。
有没有一种方法可以以一种纯语言、独立的方式生成实现代码?因此,例如,我将我的实现编译成C++和Python,分发它,人们只需使用标准库就可以使用它。
如果没有,是否有框架(在原则上类似于protobuf ),在给定的规范中生成独立的序列化代码,并且不需要为给定的语言提供其他非标准库?
这个问题源于这样一个事实:最近我不得不在不同的系统上使用protobuf,而且每个系统都有一个不同的开发库。规范应该分别在每个系统上编译吗?如果编译器有不同的版本呢?
发布于 2018-12-16 12:34:29
一个“所有平台”的目标,必然要提供一个最小的共同点API,这意味着它将是不友好的使用从大多数语言,而不是惯用。所以不是:通常的方法是选择特定于平台/语言的工具,这些工具可以使用API中最适合该平台/语言的API和技术。
不同的编译器版本并不重要--在protobuf可公开发布的时候,底层的序列化格式根本没有改变。只要语言解析器支持您正在使用的语法版本,它仍然可以工作。
https://softwareengineering.stackexchange.com/questions/384117
复制相似问题