是否有可能使Node.js使用Rhino作为Javascript引擎?

我使用Node.js在我的web应用程序上进行了多项工作,到目前为止,效果还是不错的。

但是Node.js使用Google的V8作为默认的JavaScript引擎(JSE),V8在x86和ARM指令集体系结构(ISA)上运行得非常快。

现在我有一台PPC处理器Mac电脑,我想在其上运行Node.js。

为此,我build议使用Rhino + OpenJDK Shark虚拟机+低级虚拟机( LLVM )作为JIT编译器。 目前,这看起来像在PPC ISA上运行Node.js最合适的方式。 或者,有没有更好的方法来做到这一点?

您能否事先告诉我们是否有可能使Node.js与Rhino一起工作? 顺便说一下,Node.js是用C ++编写的,我确实有C ++编程经验,也就是说,如果必须的话,我可能会尝试重新编辑Node.js的代码。

谢谢。

在Rhino上有一个由MuleSoft实现的叫做Rhinodo的Node.js。

但是,您不再需要使用Rhino作为Node.js的后端 – Andrew Low(IBM)最近为PowerPC提供了一个Node.js和V8的端口。

不,node.js与几乎所有源文件中的V8绑定,并且包括所有已经写入的附加组件。 即使你有C ++的经验,做转换也是一项艰巨的任务。

更何况,如果你独自走下这条路,你也将独自一人去维护它。 (而node.js本身已经聚集了大量的社区贡献。)

如果你真的想付出这样的努力,可以考虑先在邮件列表上讨论它。 或者,收集V8的PPC端口的动力。 (即使不是更加艰巨的任务也是如此)

对于使用Rhino的服务器端JavaScript引擎,请看Narwhal项目 。 (虽然看起来不那么活跃)

这是不可能的,正如Shtééf所说的,Node.js与V8紧密相连,它使用了特定的V8方法,依赖只会在不久的将来增长,在进入V8内部的过程中有“黑客”以便在将string写入套接字时大量提高性能。

许多模块(assert,inspect等)都依赖于特定的V8function。 在V8和其他服务器端JS引擎之间,任何方式的代码都不可能是可移植的。

虽然Shtééf考虑选项,但我看到只有一个解决scheme:
摆脱PPC硬件。

如果你真的想让它在Rhino上运行,那么最终你将会有两个不同的应用程序,或者为Rhino创build一个巨大的运行时层,它试图模拟Node.js ,祝你好运,因为很多事情在犀牛是不可用的。

也不会支持第三方库。

说真的,换个电脑,自己写所有的包装等,只会花费你的时间,在这个时间里,你可以写出很棒的Node.js。 而时间就是金钱

项目将源自Google的V8 JavaScript引擎移植到PowerPC架构。

https://github.com/ic/v8-powerpc

Interesting Posts