我应该担心动态代码生成与用C++编写的其他模块不匹配吗?

Should I worry about dynamic codegen mismatch with my other modules written in C++

本文关键字:其他 模块 不匹配 动态 担心 代码生成 C++ 我应该      更新时间:2023-10-16

我有一个Proto文件,它正在NodeJs和C++中使用。

C++使用的是protoc编译器,而NodeJS使用的是动态代码生成,我担心的是,如果C++使用与我的NodeJS动态代码生成不同的编译器版本,这对我们来说会是一个问题吗?

如果是,你们建议什么来解决这个问题?我应该使用静态代码生成吗?两者的优缺点是什么 如果有人可以帮助我理解,谢谢

同时使用这两种不同的 protobuf/gRPC 代码生成方法应该没有问题。不同的代码生成方法会影响 API,但它们仍使用相同的序列化格式,因此它们可以毫无问题地相互发送消息。事实上,gRPC 具有持续的互操作性测试套件,以确保这些不同的客户端和服务器可以相互通信。

要记住的一个潜在问题是当前 Node.js gRPC 动态代码生成处理重复基元字段的方式存在错误。若要避免此问题,应在任何重复的基元字段上显式设置 packed 属性。