librealsense2 Node.js Wrapper
This is the Node.js wrapper for the C++
librealsense2 for Intel® RealSense™ depth cameras (D400 series and the SR300).
Notice: Before You Go Further
To librealsense contributors: this document is for developers who want to fork librealsense and make changes to source code. (pull requests are welcome)
To Node.js users: if you're using Node.js and want to use Node.js librealsense API, please use the following command to install it directly:
npm install --save node-librealsense
If it fails to install, please refer to install prerequisites. Usage examples can be found in
1. Build from Source
1.1. Install Build Prerequisites
The version should be at least v6.x and the releases can be found here.
In Ubuntu16.04, the default apt-get installed version is lower than v6.x. The following command could install the latest v6.x release:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs
Note: OSX support for the full range of functionality offered by the SDK is not yet complete.
Install the Homebrew package manager via terminal if not installed, then run the following command to install node:
brew install node
The version can be checked through this command:
Install required modules
After Node.js is installed, run the following command to install required modules.
npm install -g jsdoc # Required for document generation npm install -g node-gyp # This is optional
Setup Build Environment
Environment is ready if you're using Ubuntu 16.04.
If you're using Windows 10, please do the following steps:
Install Python 2.7.xx, make sure "
Add python.exe to Path" is checked during the installation.
Install Visual Studio 2015 or 2017. The
Communityversion also works.
Install CMake, make sure
CMakeis in system PATH (Choose "
Add CMake to the system PATH for all users" or "
Add CMake to the system PATH for the current user" during the installation). This step is for
npm installof Node.js GLFW module that is used in
Note#1: The npm module
windows-build-tools also works for
npm install Node.js bindings, but it's not suffcient to build the native C++ librealsense2.
Note#2: for Node.js GLFW module, add
msbuild to system PATH, e.g "
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin"
Note#3: When running
Node.js 6.x, you might need to upgrade npm-bundled
node-gyp to support Visual Studio 2017 (if you're using it)
1.2. Build Native C++
1.3. Build Node.js Module/Addon
There are two options to do it: "manually bulid" or "build with CMake".
The former one is for
Node.js language binding developers who frequently change module/addon source code; the latter one is for all-in-one build scenarios.
librealsense library is Built, run the following commands:
cd wrappers/nodejs npm install
Build with CMake
Before building C++
librealsense library, enable the following option when calling
cmake -DBUILD_NODEJS_BINDINGS=1 <other options...> make # Will build both C++ library & Node.js binding.
Note: when doing "Build with CMake" on Windows,
node-gyp module of 'npm install' command requires one or many of the following Visual Studio 2017 components (if you're using it):
.NET Framework 4.7 development tools
.NET Framework 4.6.2 development tools
.NET Framework 4-4.6 development tools
If it still doens't work, try pass an environment variable to
2. Run Examples
When Node.js wrapper is built, you can run examples to see if it works. Plug in your Intel® RealSense™ camera and run the following commands
cd wrappers/nodejs/examples npm install node nodejs-capture.js
3. API Reference Document
wrappers/nodejs/doc/index.html for full reference document. If it isn't there, run the following commands to generate it:
cd wrappers/nodejs node scripts/generate-doc.js
Coding style guideline
- Install depot_tools and added to
- Install Required npm modules,
cd src/tools && npm install.
./tools/linter.jsbefore submitting your code.
Commit message guideline
Summary of change. Longer description of change addressing as appropriate: why the change is made, context if it is part of many changes, description of previous behavior and newly introduced differences, etc. Long lines should be wrapped to 80 columns for easier log message viewing in terminals. Fixes #123456