Windows goes Node for Microsoft's Internet of things
In a recent blog post, Microsoft technologists discussed efforts to use Node.js as a mechanism for building IoT solutions. "There is an emerging trend of developers using Node.js for IoT scenarios, and we want to meet developers where they're at and provide them the tools they need to be successful on the Windows 10 IoT Core platform," said Arunesh Chandra, Chakra Senior Program Manager, and Gaurav Seth, Chakra principal manager, of the Windows Apps Team. Windows IOT Core is intended for devices with a minimum of 256 KB of RAM and is similar to Windows Embedded.
Microsoft has forged a workaround for Node.js's inability to run on Windows on ARM devices. According to the blog post, developers can have Node.js "take advantage of running with the Chakra JavaScript engine, which is part of the OS on Windows 10 and has been optimized to run efficiently on WoA devices since its inception. The use of built-in Chakra engine not only reduces the disk footprint impact when executing Node.js apps, but also enables us to bring first-class Universal Windows Platform support to Node.js apps."
These efforts are in their early stages, but for now, Microsoft has created a wrapper between JSRT (JavaScript Runtime) hosting APIs exposed by Chakra and V8 hosting APIs used by Node.js. Microsoft will talk with the Node Foundation, the Node.js technical committee, and others about developing JavaScript engine-agnostic hosting APIs for Node.js. Plans call for enabling more Node.js scenarios and higher npm package compatibility, improved performance, and a JavaScript-agnostic interface for Node.js.
"We are excited to bring Node.js to Windows 10 IoT Core and eager get your feedback," Chandra and Seth said. "Given that this is early work, certain things do not work as expected for now. Some known issues are related to incomplete support for VM module and npm packages like serialport, firmata, etc. Also, developers have to go through multiple steps listed in the readme.md to setup the node environment to build from raw sources."