Node.js on ChakraCore 🐢🚀
JavaScript C++ C POV-Ray SDL HTML Python Other
Latest commit 05e0f04 Feb 10, 2017 @ianwjhalliday ianwjhalliday chakrashim: fix xplat build
Update chakracore.gyp to fix build on linux and mac. Changes from
@obastemur.
Permalink
Failed to load latest commit information.
.github build: change nosign flag to sign and flips logic Dec 18, 2016
benchmark buffer: improve allocation performance Dec 27, 2016
deps chakrashim: fix xplat build Feb 10, 2017
doc doc: clarify information about ABI version Dec 28, 2016
lib Merge remote-tracking branch 'nodejs/master' Dec 29, 2016
src Fix cpplint errors Jan 13, 2017
test test: fix up jslint warnings Feb 10, 2017
tools Merge remote-tracking branch 'nodejs/master' Dec 29, 2016
.editorconfig tools: disallow trailing whitespace for markdown Nov 21, 2016
.eslintignore tools: increase lint coverage Jul 13, 2016
.eslintrc Merge remote-tracking branch 'nodejs/master' Dec 29, 2016
.gitattributes src: limit .gitattributes eol to vcbuild.bat Jan 13, 2015
.gitignore Merge remote-tracking branch 'nodejs/master' Dec 29, 2016
.mailmap doc: update authors list Sep 4, 2016
.remarkrc doc: enable no-file-name-articles remark-lint rule Sep 27, 2016
AUTHORS doc: update authors list Sep 4, 2016
BSDmakefile node: rename from io.js to node Aug 23, 2015
BUILDING.md doc: clarify macosx-firewall suggestion BUILDING Dec 23, 2016
CHANGELOG.md 2016-12-21 Version 0.12.18 (Maintenance) Release Dec 21, 2016
CODE_OF_CONDUCT.md doc: enable first-heading-level remark-lint rule Sep 27, 2016
COLLABORATOR_GUIDE.md doc: fix broken link in COLLABORATOR_GUIDE.md Dec 21, 2016
CONTRIBUTING.md doc: update CONTRIBUTING.MD with link to V8 guide Dec 24, 2016
GOVERNANCE.md doc: update minute-taking procedure for CTC Nov 6, 2016
LICENSE deps: Intl: ICU 58 bump: configure/LICENSE/docs Oct 31, 2016
Makefile build: fix node_g target Dec 7, 2016
README.md configure: make ChakraCore default engine Feb 1, 2017
ROADMAP.md tools: enable more remark-lint rules Sep 25, 2016
TTD-README.md Update TTD-README.md Nov 26, 2016
WORKING_GROUPS.md doc: add Working Group dissolution text Dec 28, 2016
android-configure build: update android-configure script for npm Apr 22, 2016
common.gypi Merge remote-tracking branch 'nodejs/master' Dec 29, 2016
configure configure: make ChakraCore default engine Feb 1, 2017
node.gyp configure: make ChakraCore default engine Feb 1, 2017
vcbuild.bat configure: make ChakraCore default engine Feb 1, 2017

README.md

Node.js on ChakraCore

This project enables Node.js to optionally use the ChakraCore JavaScript engine. This project is still work in progress and not an officially supported Node.js branch. For more context into this project, please refer to the original PR.

How it works

To enable building and running Node.js with the ChakraCore JavaScript engine, a V8 API shim (ChakraShim) is created on top of the ChakraCore runtime hosting API (JSRT. ChakraShim 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.

A rebuild of node and native addon modules with ChakraCore is required for this to work.

Time Travel Debugging

Time-Travel debugging is an exciting new addition to Node.js debugging, first introduced in Node-ChakraCore, and now supported by VSCode. We are developing in the open and want to share our progress to get feedback, bug reports, functionality requests, and pull-requests from the community.

Check out this Time-Travel Debugging page to learn how to get started with TTD on Node-ChakraCore with VSCode.

Node.js API (NAPI)

Node-ChakraCore is an active participant in the ABI-Stable-Node project also called NAPI. The goal of this project is to ease the lives of native add-ons developers, by providing a stable Node API which also guarantees stable ABI across disparate Node versions. This allows native modules to just work across different versions and flavors of Node.js without recompilations, reducing the maintenance cost for module developers and thus improving compatibility.

Head over to the NAPI Project repo to learn more about it and ways to get involved.

Installing prebuilt Node-ChakraCore binaries

You can download and install stable prebuilt Node-ChakraCore from the releases page.

For installing Node-ChakraCore side-by-side your existing Node installation, we recommend Node Version Switcher (NVS).

nvs remote chakracore https://github.com/nodejs/node-chakracore/releases
nvs add chakracore/latest
nvs use chakracore

Nightly builds of Node-ChakraCore are available at https://nodejs.org/download/chakracore-nightly/ Please use the following instructions to install the nightly builds.

nvs remote chakracore-nightly https://nodejs.org/download/chakracore-nightly/
nvs add chakracore-nightly/latest
nvs use chakracore-nightly

Building Node-ChakraCore

If you are looking to build this yourself, here's what you will need.

Windows

Prerequisites:

Build Command:

vcbuild chakracore nosign [x86|x64|arm]

To run unit tests

vcbuild chakracore nobuild test [x86|x64|arm]

To test if Node.js was built correctly with ChakraCore:

C:\>node -e "console.log('Hello from Node.js ' + process.jsEngine)"
Hello from Node.js chakracore

Linux

Install building tools and ChakraCore dependencies: Clang 3.7+ / CMake 3.2 are required

Debian/Ubuntu:

sudo apt-get install -y build-essential cmake clang libicu-dev

Fedora:

su
dnf group install -y "Development Tools" "C Development Tools and Libraries"
dnf install -y git cmake clang gcc gcc-c++ kernel-devel python llvm
dnf install -y lttng-ust-devel.x86_64 libicu-devel.x86_64 libstdc++-static.x86_64

Clone this repo and check out xplat branch:

git checkout xplat

Build:

./configure
make

To run unit tests:

$ make test

To test if Node.js was built correctly with ChakraCore:

$ node -e "console.log('Hello from Node.js ' + process.jsEngine)"
Hello from Node.js chakracore

Mac OS

Prerequisites:

  • XCode v7 or higher
  • Homebrew

Install the building tools:

xcode-select --install
brew install cmake icu4c

Clone this repo and check out xplat branch:

git checkout xplat

Build:

./configure --with-icu-path=/usr/local/opt/icu4c/include --without-intl
make

To test if Node.js was built correctly with ChakraCore:

$ ./node -e "console.log('Hello from Node.js ' + process.jsEngine)"
Hello from Node.js chakracore

Issues

Please report all issues related to Node-ChakraCore on our issues page.