我在我的网络应用程序上使用Node.js进行多项工作,到目前为止还可以。
但Node.js使用Google的V8作为默认的Javascript引擎(JSE),V8在x86和ARM指令集架构(ISA)上运行。
现在我有一台PPC处理器Mac计算机,我想运行Node.js。
为此,我建议使用Rhino + OpenJDK Shark虚拟机+低级虚拟机(LLVM)作为JIT编译器。目前,这看起来像是在PPC ISA上运行Node.js最适用的方式。或者,有更好的方法吗?
你能事先告诉我是否可以让Node.js与Rhino一起工作?顺便说一句,Node.js是用C ++编写的,我确实有C ++编程经验,即如果必须,我可能会尝试重新编辑Node.js的代码。
感谢。
答案 0 :(得分:19)
不,node.js几乎与每个源文件中的V8绑定,并且包括已写入的所有附加组件。即使您具有C ++经验,转换也是一项艰巨的任务。
更不用说,如果你单独走这条路,你也会独自维持它。 (而node.js本身已经聚集了大量的社区贡献。)
如果您真的想付出这样的努力,请考虑先在the mailing list进行讨论。或者,为V8的PPC端口收集动量。 (同样,如果不是更艰巨的任务。)
对于开箱即用的Rhino服务器端JavaScript引擎,请查看Narwhal project。 (虽然看起来不太活跃。)
答案 1 :(得分:6)
MuleSoft在Rhino上有一个名为Rhinodo的Node.js实现。
但是你不再需要使用Rhino作为Node.js的后端 - 最近有一个端口Node.js和V8用于PowerPC by Andrew Low(IBM)。
答案 2 :(得分:4)
这是不可能的,因为Shtééf已经说过Node.js与V8紧密相连,它在整个地方使用特定的V8方法,依赖性只会在不久的将来增长,在获取途中会有“黑客”进入V8的内部,以便在将字符串写入套接字时大幅提高性能。
许多模块(断言,检查等)取决于特定的V8功能。在V8和其他服务器端JS引擎之间无法以任何方式移植代码。
虽然Shtééf考虑选项,但我只看到一个解决方案:
摆脱PPC硬件。
如果你真的想让它在Rhino上运行,你将最终陷入维持的噩梦,最终你将有两个写两个不同的应用程序,或者为Rhino创建一个巨大的运行时层,试图模拟Node.js,祝你好运,因为很多东西在Rhino中都不可用。
此外,不会支持第三方库。
说真的,拿另一台电脑,自己编写所有包装器等只会耗费你的时间,你可以写出很棒的Node.js东西。而且因为时间就是金钱......
答案 3 :(得分:0)
将源自Google的V8 JavaScript引擎移植到PowerPC架构的项目。