2010-12-04 84 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。由於時間就是金錢......

相關問題