我想使用 Thrift 作为 RPC-Protocol 从自定义的专有闭源语言调用 Java-Server RPC-Endpoints。(一些类似 c 的供应商特定的脚本语言)
不存在对此的绑定。
如何创建自己的生成特定语言代码的 thrift-compiler-plugins?没有在文档上找到任何内容。有没有类似模板语言的东西?
谢谢
我想使用 Thrift 作为 RPC-Protocol 从自定义的专有闭源语言调用 Java-Server RPC-Endpoints。(一些类似 c 的供应商特定的脚本语言)
不存在对此的绑定。
如何创建自己的生成特定语言代码的 thrift-compiler-plugins?没有在文档上找到任何内容。有没有类似模板语言的东西?
谢谢
如果所需的目标语言不存在绑定,路线图(大致)如下:
搜索JIRA,如果你没有找到类似的东西,创建一个新的工单,简要描述你的计划。
在 GitHub 上创建一个Apache Thrift 代码库的分支。尽管我们接受补丁文件,特别是对于较大的更改集,GitHub 分支更容易处理。
实现代码生成器,通常是从现有的池中挑选一个接近您需要的代码生成器。已经支持很多语言,您会发现 oop、过程和函数样式。如果有疑问,从您找到的两三个候选人中选择哪一个,请转到下一点
再次通过选择现有库之一作为起点,为该特定语言实现 Thrift 库。由于库在实现的“深度”方面存在很大差异,因此建议仔细查看已实现的内容,以及未实现的内容。
实施标准化的Thrift 跨平台测试,并确保所有测试在针对至少一种其他语言运行时都能成功。这确保了互操作性,并确保代码不仅在与自己交谈时(= 相同的语言)有效。
实现教程代码并针对其他语言进行测试。如果你做的一切都很好,这最后一步就比较容易了。
你完成了,现在打开一个拉取请求!
请注意,这 4 个实现步骤并不是真正的线性过程,它更像是一种迭代。即使生成器产生的代码最终是可编译的,并且不会发出任何警告并且似乎可以运行,但在继续实现库和测试时,您仍然会遇到问题。这是完全正常和预期的。
除此之外,最好将您的工作发布到邮件列表并尽早创建 JIRA 票证(这就是我将其放在列表顶部的原因)。这不仅是为了宣布您将要做的工作,对于可能只是在寻找那些东西的其他人来说,这也是一个很好的起点。运气好的话,您不仅能够获得早期反馈(这总是一件好事),而且还能在实施和/或测试方面获得一些支持。
评论
如果您想实现现有语言的新风格,首选方法是将其添加到现有代码生成器、库等中。对于一个好的模型,请查看 nodejs 实现,或 Python 已经存在的各种选项. thrift --help
给了一个很好的开始。