【发布时间】:2014-01-28 20:22:52
【问题描述】:
这个问题是关于设计的/是相当开放的。
我想使用来自 Haskell 的大型 C++ 库 OpenCV。 目前最接近的解决方案可能是 Arjun Comar 尝试调整 Python/Java 绑定生成器。 请参阅 here、here 和 here。 他的方法生成一个 C 接口,然后使用 hsc2hs 进行包装。 由于 OpenCV 在其 API 中缺乏引用透明度,以及频繁使用调用参数进行输出,为了让 Arjun 的方法完全成功,他需要为 OpenCV 定义一个新的 API,并根据现有的 API 实现它.
因此,使用interface description languages (IDL)(例如 SWIG、protobuf-with-RPC 或 Apache Thrift)来定义 API 似乎并没有太多额外的工作。 这将为 Haskell 之外的多种语言提供接口。
我的问题:
对于无服务器解决方案,还有什么比 SWIG 更好的解决方案吗? (我只想调用 C++;我宁愿不通过本地服务器。)
-
如果没有好的无服务器解决方案,我应该使用 protobuf-with-RPC 还是 Thrift?
相关:Thrift 的 Haskell 支持有多好? 从代码来看,它似乎需要更新(我看到对 GHC 6 的引用)。
相关:什么是好的 protobuf-with-RPC 解决方案?
【问题讨论】:
-
AlphaHeavy 有一个用于 Haskell 的 protobuf 库,非常好。我建议看看。
标签: haskell protocol-buffers swig thrift idl