Microsoft announced it has open-sourced its ChakraCore JavaScript engine that powers its Edge Web browser.
The company initially laid out its plans to open-source the technology last month in a talk at JSConf US. Microsoft released the code under the MIT License at the ChakraCore GitHub repository.
In a blog post on the project, Guarav Seth, Microsoft’s principal manager for Chakra, said, “The ChakraCore repository provides a fully supported and open-source standalone JavaScript engine, with the same characteristics as the Microsoft Edge’s Chakra engine, to embed in projects, innovate on top of and contribute back to. We will be accepting community contributions and input to ChakraCore. Once the changes from any pull request have been vetted, our goal is to ensure that all changes find their way to be shipped as a part of the JavaScript engine powering Microsoft Edge and the Universal Windows Platform on Windows 10.”
Microsoft also published a roadmap for ChakraCore on its GitHub repository. With this release, developers can build ChakraCore on Windows 7 SP1 or above with Visual Studio 2013 or 2015 with C++ support installed. In the future, Microsoft will bring the technology to other platforms, starting with Linux, and will keep the roadmap updated with details and status updates as the project progresses.
Moving toward this cross-platform goal for Chakra, Microsoft separated out Chakra’s just-in-time (JIT) compiler to provide a build configuration that builds just the interpreter and runtime.
“This smaller build target is what we will initially enable cross platform porting,” Seth said. “We also invite developers to help us in the pursuit either by letting us know which other platforms they’d like to see ChakraCore supported on, or even by helping port it to the platform of their choice.”
In addition to the talk at JSConf US last month, Microsoft also spelled out its ChakraCore strategy in a December 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.