2010-12-04 9 views
15

私はWebアプリケーション上でいくつかのジョブにNode.jsを使用しています。Node.jsがJavascriptエンジンとしてRhinoを使用できるようにすることはできますか?

しかし、Node.jsはGoogleのV8をデフォルトJavascriptエンジン(JSE)として使用し、V8はx86とARM命令セットアーキテクチャ(ISA)で例外的に動作します。

今私はNode.jsを実行したいPPCプロセッサのMacコンピュータを持っています。

これを行うには、JITコンパイラとしてRhino + OpenJDK Shark仮想マシン+低レベル仮想マシン(LLVM)を使用することをお勧めします。現在、これはPPC ISA上でNode.jsを実行する最も適用可能な方法のようです。それとももっと良い方法がありますか?

RhinoでNode.jsを動作させることは可能でしょうか? Btw、Node.jsはC++で書かれていますが、C++プログラミングの経験があります。つまり、Node.jsのコードを再編集しようとするかもしれません。

ありがとうございました。

+0

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

+1

まだ進行中ですが、確認する価値があります:https://github.com/mulesoft/rhinodo – apose

+0

rhinodoはノードを実行する有望な方法のようです。 Java VMがサポートされている非x86アーキテクチャのjs。 – Romario

答えて

5

はMuleSoftでRhinodoと呼ばRhinoの上のNode.jsの実装があります。

しかし、Node.jsのバックエンドとしてRhinoを使用する必要はありません。Andrew Low(IBM)のPowerPC用に最近のポートはNode.jsV8です。

+0

これはV8をPowerPCに移植する上で最も有望な作業のようです。私は最初の機会に使用しようとし始めます。 – Romario

19

いいえ、node.jsは、ほとんどすべてのソースファイルと、書き込まれたすべてのアドオンを含むV8に関連付けられています。 C++の経験があっても、変換を行うことは大きな仕事になります。

あなたがこの道だけを降りると、あなたはそれを維持することにもなります。 (node.js自体が寄与している大きなコミュニティを集めたのに対し)

このような努力を本当にしたいのであれば、まずそれをthe mailing listで議論することを検討してください。あるいは、V8のPPCポートの勢いを集める。 (同様に、それほど難しい作業ではない場合)

すぐにRhinoを使用するサーバーサイドJavaScriptエンジンについては、Narwhal projectをご覧ください。

+4

一部の人々は、SpiderMonkey上でNode.jsを実行するための努力を始めました.SpiderMonkeyはPPCをサポートしていると信じています。ちょうどここに注意してください:http://blog.zpao.com/post/4620873765/about-that-hybrid-v8monkey-engine –

+1

私はあなたがいたならば、私はÖmerをすばやく落胆させません。Javaは、システムを使用して、2つのテクノロジーを統合するだけです。ほとんどの場合、新しいプロジェクトでnode.jsを使用することを断念するのは、(特にクローズドソースのエンタープライズドメインで)ジョブを実行するために特別なJavaのlibを使用する必要があるからです。 – bbozo

+0

RubyのEventMachineのJavaとC++の実装(つまり、extとjavaフォルダを比較するhttps://github.com/eventmachine/eventmachine)から判断すると、V8 APIはJavaで再実装するのがはるかに簡単で、最初はC++で実装する必要があります – bbozo

4

Shtééfは既にNode.jsがV8に密接に結びついており、特定のV8メソッドを使用していると言っているので、これは不可能です。依存関係は近い将来にのみ拡大します。文字列をソケットに書くときのパフォーマンスを大幅に向上させるために、V8の内部に入るための「ハック」です。

多くのモジュール(アサート、検査など)は、特定のV8機能に依存します。 V8と他のサーバー側のJSエンジンとの間でコードを移植する方法はありません。

Shtééfはオプションを考慮していますが、私には1つの解決策しか表示されません。
PPCハードウェアを削除してください。

実際にRhinoを稼働させたい場合は、悪夢を抱くようになります。最後に、2つの別々のアプリケーションを作成するか、Rhinoのランタイムレイヤーを作成しようとしますRhinoではNode.jsをエミュレートすることができます。これはRhinoでは多くの機能が利用できないためです。

また、第三者のライブラリのサポートもありません。

真剣に、別のコンピュータを手に入れ、すべてのラッパーなどをあなた自身で書くことは、素晴らしいNode.jsものを書いていただけの時間を要します。そして時間がお金であるから...

+1

ああ、誰かが自分の自我を高める必要がある、嬉しい、私はほぼ一歳の質問で助けてくれて参照してください:) –

+0

ええ、あなたはポイントがあります。私のコメント申し訳ありません。そして、あなたはディスカッションに追加しました。ありがとうございました。 (私の-1コメントは削除されました) –

0

GoogleからPowerPCアーキテクチャに起源したV8 JavaScriptエンジンを移植するプロジェクト。

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

+0

このプロジェクトは2年前から無効になっています。 – niutech

関連する問題