1

我想使用 Thrift 作为 RPC-Protocol 从自定义的专有闭源语言调用 Java-Server RPC-Endpoints。(一些类似 c 的供应商特定的脚本语言)

不存在对此的绑定。

如何创建自己的生成特定语言代码的 thrift-compiler-plugins?没有在文档上找到任何内容。有没有类似模板语言的东西?

谢谢

4

1 回答 1

1

如果所需的目标语言不存在绑定,路线图(大致)如下:

  • 搜索JIRA,如果你没有找到类似的东西,创建一个新的工单,简要描述你的计划。

  • 在 GitHub 上创建一个Apache Thrift 代码库的分支。尽管我们接受补丁文件,特别是对于较大的更改集,GitHub 分支更容易处理。

  • 实现代码生成器,通常是从现有的池中挑选一个接近您需要的代码生成器。已经支持很多语言,您会发现 oop、过程和函数样式。如果有疑问,从您找到的两三个候选人中选择哪一个,请转到下一点

  • 再次通过选择现有库之一作为起点,为该特定语言实现 Thrift 库。由于库在实现的“深度”方面存在很大差异,因此建议仔细查看已实现的内容,以及未实现的内容。

  • 实施标准化的Thrift 跨平台测试,并确保所有测试在针对至少一种其他语言运行时都能成功。这确保了互操作性,并确保代码不仅在与自己交谈时(= 相同的语言)有效。

  • 实现教程代码并针对其他语言进行测试。如果你做的一切都很好,这最后一步就比较容易了。

  • 你完成了,现在打开一个拉取请求!

请注意,这 4 个实现步骤并不是真正的线性过程,它更像是一种迭代。即使生成器产生的代码最终是可编译的,并且不会发出任何警告并且似乎可以运行,但在继续实现库和测试时,您仍然会遇到问题。这是完全正常和预期的。

除此之外,最好将您的工作发布到邮件列表并尽早创建 JIRA 票证(这就是我将其放在列表顶部的原因)。这不仅是为了宣布您将要做的工作,对于可能只是在寻找那些东西的其他人来说,这也是一个很好的起点。运气好的话,您不仅能够获得早期反馈(这总是一件好事),而且还能在实施和/或测试方面获得一些支持。

评论

如果您想实现现有语言的新风格,首选方法是将其添加到现有代码生成器、库等中。对于一个好的模型,请查看 nodejs 实现,或 Python 已经存在的各种选项. thrift --help给了一个很好的开始。

于 2014-10-31T12:57:37.327 回答