2010-12-04 26 views
15

Ich benutze Node.js für verschiedene Jobs in meinen Web Apps und bis jetzt ist alles in Ordnung.Kann Node.js Rhino als Javascript-Engine verwenden?

Aber die Node.js verwendet Googles V8 als Standard-Javascript-Engine (JSE) und V8 läuft ausschließlich auf der x86 und ARM Instruction Set Architekturen (ISA).

Jetzt habe ich einen PPC-Prozessor Mac-Computer, auf dem ich die Node.js ausführen möchte.

Um dies zu tun, bin ich raten, die Rhino + OpenJDK Shark Virtuelle Maschine + Low Level Virtual Machine (LLVM) als JIT-Compiler zu verwenden. Momentan sieht das so aus, als würde man Node.js am besten auf der PPC-ISA ausführen. Oder gibt es einen besseren Weg, es zu tun?

Können Sie vorher sagen, ob Node.js mit Rhino funktionieren könnte? Btw, Node.js ist in C++ geschrieben und ich habe die C++ - Programmierung Erfahrung, d. H. Ich kann versuchen, den Code von Node.js neu zu bearbeiten, wenn ich muss.

Danke.

+0

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

+1

Noch arbeiten im Gange, aber es lohnt sich zu überprüfen: https://github.com/mulesoft/rhinodo – apose

+0

Rhinodo sieht aus wie eine vielversprechende Möglichkeit, Knoten zu betreiben. js in Nicht-x86-Architekturen, für die Java VM unterstützt. – Romario

Antwort

5

Es ist eine Implementierung von Node.js auf Rhino Rhinodo von MuleSoft genannt.

Aber Sie müssen Rhino nicht mehr als Backend für Node.js verwenden - es gibt einen aktuellen Port von Node.js und V8 für PowerPC von Andrew Low (IBM).

+0

Ja, dieser sieht nach der vielversprechendsten Arbeit bei der Portierung des V8 auf PowerPC aus. Ich werde versuchen, bei der ersten Gelegenheit zu verwenden. – Romario

19

Nein, node.js ist in fast jeder Quelldatei an V8 gebunden und enthält alle Add-Ons, die geschrieben wurden. Selbst wenn Sie die C++ - Erfahrung haben, wäre es eine große Aufgabe, die Konvertierung durchzuführen.

Ganz zu schweigen davon, wenn Sie diesen Weg alleine gehen, werden Sie auch allein darin sein, es aufrechtzuerhalten. (Während node.js selbst eine große Gemeinschaft beigetragen hat.)

Wenn Sie wirklich solche Mühe machen wollen, überlegen Sie, es zuerst auf the mailing list zu diskutieren. Oder alternativ, sammeln Sie Schwung für einen PPC-Port von V8. (Eine gleichermaßen schwierige Aufgabe.)

Für eine serverseitige JavaScript-Engine, die Rhino sofort verwendet, werfen Sie einen Blick auf die Narwhal project. (Obwohl es weniger aktiv scheint.)

+4

Einige Leute haben versucht, Node.js auf SpiderMonkey laufen zu lassen, was meiner Meinung nach PPC-Unterstützung hat. Nur notieren Sie dies hier: http://blog.zpao.com/post/4620873765/about-that-hybrid-v8monkey-engine –

+1

Ich würde Ömer nicht so schnell entmutigen, wenn ich Sie wäre, Java hat eine viel zu umfangreiche Öko- System, um die Integration der beiden Technologien einfach zu verwerfen. Die meiste Zeit, in der ich von der Verwendung von node.js in einem neuen Projekt abbreche, liegt das daran, dass ich wirklich eine spezielle Java-Bibliothek verwenden muss, um eine Aufgabe erledigen zu können (besonders in der Closed-Source-Unternehmensdomäne). – bbozo

+0

Zumindest aus Ruby EventMachine Java und C++ - Implementierungen (https://github.com/eventmachine/eventmachine - vergleichen Sie Ext und Java-Ordner), sollte die V8-API viel einfacher in Java neu zu implementieren dann war es ursprünglich in C++ zu implementieren – bbozo

4

Dies ist unmöglich, da Shtééf bereits sagte Node.js ist eng an V8 gebunden, es verwendet bestimmte V8-Methoden überall, die Abhängigkeit wird nur in naher Zukunft dort wachsen sind "Hacks" auf dem Weg in die Interna von V8 zu kommen, um die Performance beim Schreiben von Strings in Sockets massiv zu verbessern.

Viele Module (Assert, Inspect usw.) hängen von bestimmten V8-Funktionen ab. Es gibt keine Möglichkeit, Code in irgendeiner Weise zwischen V8 und anderen serverseitigen JS-Engines zu übertragen.

Während Shtééf Optionen betrachtet, sehe ich nur eine Lösung:
Holen Sie sich die PPC-Hardware.

Wenn Sie wirklich wollen, dass es auf Rhino läuft, werden Sie in einem Alptraum enden, am Ende werden Sie zwei entweder zwei verschiedene Anwendungen schreiben oder eine riesige Laufzeitschicht für Rhino erstellen, die versucht emulieren Node.js, viel Glück damit, da viele Dinge in Rhino nicht verfügbar sind.

Auch wird es keine Unterstützung für Bibliotheken von Drittanbietern geben.

Ernsthaft, hol dir einen anderen Computer, schreibe alle Wrapper etc. auf eigene Faust und es kostet nur deine Zeit, in der du tolle Node.js-Sachen geschrieben haben könntest. Und da Zeit Geld ist ...

+1

Oh, sehen, jemand musste sein Ego steigern, froh, dass ich mit einer fast ein Jahr alten Frage geholfen wurde :) –

+0

Yeah- Sie haben einen Punkt. Entschuldigung für meinen Kommentar. Und du hast die Diskussion noch verstärkt - danke dafür. (mein -1 Kommentar entfernt) –

0

Projekt, um die V8-JavaScript-Engine von Google in die PowerPC-Architektur zu portieren.

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

+0

Dieses Projekt ist seit 2 Jahren inaktiv, es gibt eine bessere Alternative oben. – niutech