2010-12-04 53 views
15

我在我的web应用程序上使用Node.js进行多项工作,到目前为止everthing没问题。是否有可能使Node.js使用Rhino作为Javascript引擎?

但是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

https://github.com/ic/v8-powerpc – earthmeLon 2012-09-26 19:53:21

+1

仍在工作中,但它可能值得检查:https://github.com/mulesoft/rhinodo – apose 2013-02-25 04:51:56

+0

rhinodo看起来像一个有前途的方式来运行节点。 js在非x86体系结构中为其提供Java VM支持。 – Romario 2013-07-29 23:46:06

回答

5

目前的Node.js对犀牛的实现,MuleSoft称为Rhinodo

但您不再需要将Rhino用作Node.js的后端 - Andrew Low(IBM)最近为PowerPC提供了Node.jsV8的端口。

19

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

更不用说,如果你单独走这条路,你也会一个人维护它。 (而node.js本身已经聚集了大量的社区贡献。)

如果您确实想要投入这种努力,请考虑首先在the mailing list上讨论它。或者,收集V8的PPC端口的动力。 (即使不是更加艰巨的任务,也是如此)

对于使用开箱即用的Rhino的服务器端JavaScript引擎,请查看Narwhal project。 (尽管看起来不那么活跃)

+4

一些人已经开始努力让Node.js在SpiderMonkey上运行,我相信它支持PPC。只是在这里注意到这一点:http://blog.zpao.com/post/4620873765/about-that-hybrid-v8monkey-engine – 2011-04-23 19:35:23

+1

如果我是你,我不会很沮丧Ömer,Java的生态环境太广泛了,系统简单地抛弃永远集成这两种技术。当我放弃在新项目中使用node.js时,大多数时候是因为我真的需要使用专门的Java lib来完成工作(特别是在封闭源代码的enterprisey域中)。 – bbozo 2013-11-14 09:23:18

4

这是不可能的,因为Shtééf已经说过Node.js与V8紧密相关,它在整个地方使用特定的V8方法,依赖性只会在不久的将来增长,在进入V8内部的过程中是“黑客”,以便在将字符串写入套接字时大幅提高性能。

许多模块(assert,inspect等)都依赖于特定的V8功能。在V8和其他服务器端JS引擎之间,以任何方式进行代码移植都没有办法。

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

如果你真的想让它在Rhino上运行,那么最终你会有两个不同的应用程序写入,或者为Rhino创建一个巨大的运行时层,它试图模仿Node.js,祝你好运,因为许多事情在Rhino中不可用。

也不会支持第三方库。

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

相关问题