Does Apache Thrift allow foreign function calls between any two languages?

你说的曾经没有我的故事 提交于 2019-12-08 11:17:11

问题


I'm currently trying to develop (an API in multiple programming languages) that can be accessed from (various other programming languages). I've taken a look at Apache Thrift, and it appears that it might be possible to allow seamless foreign function calls between any two languages using Thrift. Is this correct?


回答1:


Thrift is created to facilitate communication between different processes over the network, not in process FFI. It is probably possible to take some parts of Thrift (like IDL), and adopt it for FFI, but it could be an nontrivial undertaking, and provide suboptimal results.




回答2:


I have actually been thinking of something similar myself.

There are core concepts to the Thrift specification.

  • The Transport: This portion is responsible for facilitating data transfer between a client and server.
  • The Protocol: This portion is responsible for formatting the said data in different ways. It can be a JSON, compressed binary, even raw uncompressed binary.
  • The Server: This is responsible for putting these things together and managing them.

Thrift allows you to mix these different parts in unique ways to create something suitable to your purpose. Thrift is still very much server-client oriented though.

To develop an API in thrift would mean that you could theoreticallly have plugins in any language. The main software component would launch the sub-process and use STD-IN/OUT as a Transport. This would allow it to make RPC calls regardless of Language.



来源:https://stackoverflow.com/questions/12887932/does-apache-thrift-allow-foreign-function-calls-between-any-two-languages

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!