Microsoft Open-Sources 'Chakra' JavaScript Engine

Microsoft announced plans to open-source the JavaScript engine behind its Edge Web browser.

Download the authoritative guide: How to Develop an IT Security Strategy

Chakra JavaScript Engine

Microsoft announced it is open-sourcing Chakra, the JavaScript engine that powers its Edge Web browser.

The company made the announcement today at the JSConf US Last Call in Amelia Island, Fla. Microsoft said it will open-source the core components of Chakra as ChakraCore, which will include all the key components of the JavaScript engine powering Microsoft Edge. The company expects to open the ChakraCore repository on GitHub next month, according to a blog post written by Adalberto Foresti and Gaurav Seth, both managers on the Microsoft Edge browser team.

"Chakra offers best-in-class JavaScript execution with the broadest set of ES2015 feature coverage and dependable performance, reliability, and scalability," the post said. "We expect ChakraCore to be used wherever these factors are important, ranging from cloud-based services to the Internet of Things and beyond."

Microsoft describes ChakraCore as a fully fledged, self-contained JavaScript virtual machine that can be embedded in derivative products and power applications that need "scriptability" such as NoSQL databases, productivity software, and game engines. ChakraCore can be used to extend the reach of JavaScript on the server with platforms such as Node.js and cloud-based services. It includes everything that is needed to parse, interpret, compile and execute JavaScript code without any dependencies on Microsoft Edge internals, the Microsoft post said.

Moreover, the post explains that ChakraCore shares the same set of capabilities that are supported by Chakra in Microsoft Edge, with two key differences. First, it does not expose Chakra’s private bindings to the browser or the Universal Windows Platform, both of which constrain it to a very specific use case. Second, instead of exposing the COM based diagnostic APIs that are currently available in Chakra, ChakraCore will support a new set of modern diagnostic APIs, which will be platform agnostic and could be standardized or made interoperable across different implementations in the long run. And, as the company progresses on these new diagnostics APIs, Microsoft will make them available in Chakra as well.

Microsoft is intent on working with the community to improve Chakra. "In addition to the public, several organizations have already expressed interest in contributing to ChakraCore—among many others, we look forward to working with Intel, AMD, and NodeSource as we develop this community," the post said.

In 2008, Microsoft decided to invest in JavaScript by creating a new JavaScript engine, codenamed Chakra, from a clean slate. "Our founding principles were to ensure that Chakra had the performance characteristics needed for the modern web and could easily adapt to other potentially emerging scenarios, across a range of hardware profiles," Microsoft said. "In a nutshell, this means that Chakra needed to start fast, run fast, and deliver a great user experience, while utilizing the full potential of the underlying hardware. Chakra achieved these goals via a unique multi-tiered pipeline that supports an interpreter, a multi-tiered background JIT compiler, and a traditional mark and sweep garbage collector that can do concurrent and partial collections."