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