0

我目前正在尝试开发可以从(各种其他编程语言)访问的(多种编程语言的 API)。我查看了 Apache Thrift,似乎有可能允许使用 Thrift 在任何两种语言之间进行无缝的外部函数调用。这个对吗?

4

2 回答 2

1

创建 Thrift 是为了促进网络上不同进程之间的通信,而不是进程中的 FFI。可能有可能采用 Thrift 的某些部分(如 IDL),并将其用于 FFI,但这可能是一项艰巨的任务,并提供次优结果。

于 2012-10-15T07:51:39.103 回答
1

实际上,我自己也一直在考虑类似的事情。

Thrift 规范有一些核心概念。

  • 传输:这部分负责促进客户端和服务器之间的数据传输。
  • 协议:这部分负责以不同方式格式化所述数据。它可以是 JSON、压缩二进制文件,甚至是原始未压缩二进制文件。
  • 服务器:负责将这些东西放在一起并管理它们。

Thrift 允许您以独特的方式混合这些不同的部分,以创建适合您目的的东西。虽然 Thrift 仍然非常面向服务器客户端。

以节俭的方式开发 API 意味着理论上您可以拥有任何语言的插件。主软件组件将启动子流程并使用 STD-IN/OUT 作为传输。这将允许它进行 RPC 调用而不管语言。

于 2012-10-15T19:24:02.797 回答