Microsoft To Open Source Chakra JavaScript Engine, Take It Beyond Windows

Microsoft continued its historic open source efforts by announcing it will donate the technology behind its Chakra JavaScript engine to the community -- and solicit outside help in making it cross platform so it will work on other OSes beyond Windows.

As a JavaScript engine, Chakra is one of many industry projects that provide a virtual machine to interpret JavaScript code and execute that code in whatever host it resides in. Chakra was the codename for the project unveiled in 2010 that developed a brand-new JavaScript engine for the Microsoft Internet Explorer 9 browser.

Since then, Chakra and JavaScript have both evolved, with Chakra being put to work to power Windows 10's Edge browser and the programming language moving far beyond its roots as a Web scripting tool designed to make static Web pages more dynamic. While maturing to a more robust, general-purpose language, JavaScript has been employed on the server and the cloud and in games, NoSQL databases, Internet of Things (IoT) apps and more -- even stirring talk of being applied to coding complete desktop apps.

At a Florida conference, Microsoft on Saturday revealed it will separate the core components of its JavaScript engine from private browser and Windows bindings and internal dependencies and host the technology on GitHub under the name ChakraCore with an MIT license.

"Since its introduction in 2008, Chakra has grown to be a perfect choice for the Web, cloud services and the Internet of Things," Microsoft's Gaurav Seth and Adalberto Foresti wrote in a blog post Saturday. "With today's announcement, we're taking the next step by giving developers a fully supported and fully open source JavaScript engine available to embed in their projects, innovate on top of, and contribute back to: ChakraCore."

Chakra and ChakraCore's Multi-tiered Execution Pipeline.
[Click on image for larger view.] Chakra and ChakraCore's Multi-tiered Execution Pipeline. (source: Microsoft)

Some of those contributions might take ChakraCore to other OSes, as Microsoft said it will make the JavaScript engine cross-platform.

"ChakraCore is already designed to fit into any application stack that calls for a fast, scalable, and lightweight engine," Microsoft said. "We intend to make it even more versatile over time, both within and beyond the Windows ecosystem. While the initial January release will be Windows-only, we are committed to bringing ChakraCore to other platforms in the future. We'd invite developers to help us in this pursuit by letting us know which other platforms they'd like to see ChakraCore supported on to help us prioritize future investments, or even by helping port it to the platform of their choice."

That notion was echoed on Hacker News, where the announcement stirred much discussion. When a commenter said it's almost sad that Edge wasn't cross platform, a commenter with the handle "hiteshk_msft," self-identifying as a Microsoft engineer on the Chakra team, replied: "As the blog post says, we are definitely interested in going cross-platform. Which platforms would you be interested in seeing first?"

Linux was the first answer, echoed by many other commenters, with FreeBSD, OS X and Android also receiving votes.

If it does move to other platforms, ChakraCore might become one of the more valuable instruments for developers to put in their toolboxes, judging from Microsoft's performance and industry standard support accolades.

According to the blog post, Chakra was optimized to run faster with its inclusion as a core component of Windows 10 and surpasses Chrome and Firefox in several key benchmarks. Microsoft said it achieved superior performance through 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."

And, Microsoft said, Chakra supports more of the latest ECMAScript standards, ES2015 (sometimes called ES6), than any other shipping browser.

Chakra also "has support for some of the future ECMAScript proposals like Async Functions and SIMD," Microsoft said. "It supports asm.js and the team is a key participant in helping evolve WebAssembly and its associated infrastructure."

Besides the Edge browser, Chakra also powers several other Microsoft technologies, the blog post indicated. "Today, outside of the Microsoft Edge browser, Chakra powers Universal Windows applications across all form factors where Windows 10 is supported -- whether it's on an Xbox, a phone or a traditional PC," Microsoft said. "It powers services such Azure DocumentDB, Cortana and It is used by (and optimized for) TypeScript. And with Windows 10, we enabled Node.js to run with Chakra, to help advance the reach of Node.js ecosystem and make Node.js available on a new IoT platform: Windows 10 IoT Core."

In addition to opening up the ChakraCore technology to individual open source contributors, Microsoft said several organizations are interested in helping out with the project, singling out Intel, AMD and NodeSource as potential development partners moving forward.

"The community is at the heart of any open source project, so we look forward to the community cloning the repository, inspecting the code, building it, and contributing everything from new functionality to tests or bug fixes," Microsoft said. "We also welcome suggestions on how to improve ChakraCore for particular scenarios that are important to you or your business."

About the Author

David Ramel is an editor and writer for Converge360.