我真的很喜欢像 SWIG 那样自动生成绑定的想法。但它仍然缺少 Javascript 绑定。我读到它不能用 Spidermonkey 完成,因为必须将 JS 上下文作为参数传递给每个函数。
我找到的唯一解决方案是将 JVM 嵌入到我的 C++ 应用程序中,使用 SWIG 生成与 Java 的绑定,然后使用 Rhino 引擎作为 JS 解释器。它工作正常,但它真的很重量级!
还有其他想法吗?
注意:是的,我知道,我可以改用 Python 或 Lua。但我的问题实际上是关于 JS 的。
我真的很喜欢像 SWIG 那样自动生成绑定的想法。但它仍然缺少 Javascript 绑定。我读到它不能用 Spidermonkey 完成,因为必须将 JS 上下文作为参数传递给每个函数。
我找到的唯一解决方案是将 JVM 嵌入到我的 C++ 应用程序中,使用 SWIG 生成与 Java 的绑定,然后使用 Rhino 引擎作为 JS 解释器。它工作正常,但它真的很重量级!
还有其他想法吗?
注意:是的,我知道,我可以改用 Python 或 Lua。但我的问题实际上是关于 JS 的。
如果您不着急:等待 SWIG Javascript 绑定,该绑定可能由 Neha Narang 开发为 GSoC-2012 项目“Javascript 的新模块”。
摘要说:
该项目旨在将 Javascript 作为一种新的受支持目标语言添加到 swig 中,以自动生成基于 C++ 的 Javascript 包装器。
好吧,由于我没有任何答案,我认为我必须使用 SWIG 以外的其他替代方案。
我发现mozilla 开发者中心的那个页面提到了几个用 Spidermonkey 引擎包装 JS 的项目:Spiderape、Flusspferd、TriXUL 和 jsapigen。
对于 V8,Spiderape 的创建者有一个名为 v8-juice 的类似项目。