マイクロソフト、Node.jsのJSエンジンとして同社のChakraCoreも使えるように、Node.jsのメインラインにプルリクエストを投げたと表明
マイクロソフトがWindows 10やMicrosoft Edgeで使われているJavaScriptエンジンのコア「ChakraCore」のソースコードを公開したのは先週のこと。
マイクロソフトはこのChakraCoreをNode.jsのJavaScriptエンジンとして使えるようにすべく、Node.jsのメインラインに対してプルリクエストを投げたことを明らかにしました。
Node.jsは、GoogleのChromeで使われているJavaScriptエンジンのV8を用いています。このV8をChakraCoreで置き換えるために、マイクロソフトはChakraCoreをV8互換に見せるための「Chakra Shim」と呼ばれるコンポーネントを開発しました。
This pull request enables Node.js to optionally use the ChakraCore JavaScript engine. Chakra Shim, which is a layer on top of the ChakraCore JS Engine, enables building and running Node.js with ChakraCore. This shim implements the most essential V8 APIs so that the underlying JavaScript engine change is transparent to Node.js and other native addon modules written for V8.
このプルリクエストは、ChakraCore JavaScriptエンジンをNode.jsで使えるオプションを実現するものだ。Chakra ShimはChackraCore JavaScriptエンジンの上位に位置するレイヤで、Node.jsにChacraCoreを組み込んで実行可能にする。Chakra ShimはV8 APIの本質的なAPIをほぼ実装しており、Node.jsやV8用のネイティブアドオンモジュールから見てJavaScriptエンジンの置き換えを透過的にする。
「Submitting a Pull Request to Node.js with ChakraCore」から
Node.jsには機能を拡張できる「npm」(Node.js Package Manger)が多数ありますが、多くのnpmはJavaScriptで書かれているため実行には差し支えないとのこと。ただし、一部でネイティブなV8 APIに依存するものがあり、そのために抽象化レイヤのNAN(Native Abstraction for Node.js)があります。
マイクロソフトはこのNANもChakraCore版Node.jsで対応するとしており、従来のNode.jsの資産をそのままChakraCore版Node.jsで利用可能にする方針を示しています。
あわせて読みたい
DockerがUnikernelを買収。1秒以下で起動しハイパーバイザで安全に分離されるUnikernelが新たなコンテナの仲間入り
≪前の記事
GoogleがClouderaらと共同で「Google Cloud Dataflow」のオープンソース化提案。Apache Incubatorプロジェクトとして