【问题标题】:How to write my own Javascript API (client-side) for a native code library (C/C++)如何为本地代码库 (C/C++) 编写我自己的 Javascript API(客户端)
【发布时间】:2013-03-11 19:39:41
【问题描述】:
我必须为客户端开发一个带有 HTML 5 和 Javascript 的 Web 应用程序。但是我需要使用提供客户端本机库(.dll/.so)的功能来使用 C/C++ 在它的机器上处理一些数据。
我喜欢用 Javascript 编写自己的 API 来访问本机库,例如 NodeJS's addonsdefine,但这些插件只能从 NodeJS(服务器端)访问。
还有一个完善的 NPAPI,但似乎 Google 的 PPAPI 想要替换它:我无法决定其中任何一个。
有没有类似于 NodeJS 的客户端插件让我只专注于 C++、Javascript 和 HTML 5 的东西?
谢谢。
【问题讨论】:
标签:
c++
c
node.js
client-side
【解决方案1】:
不是一般意义上的。允许使用 node.js 的插件,因为代码的作者和运行它的人之间存在隐含的信任关系。 (实际上,他们通常是同一个人。)在网络浏览器中,不存在这样的信任——通过浏览一个网站,你让编写该网站的人在你的系统上运行一些代码。由于您(可能)不完全信任它们,因此它们在 Javascript 中可以执行的操作仅限于一组已知的安全操作。在那个集合中加载 DLL 非常不。
正如 generalhenry 在评论中指出的那样,有一些项目,如 emscripten 将本机代码编译为 Javascript,或 Google Native Client 在浏览器中运行沙盒本机代码,但这些技术仍然在功能上受到限制,而且很漂亮还不成熟。最终,您需要接受在浏览器中运行的代码将受到限制这一事实。