Biz & IT —

Microsoft to open source Chakra, the JavaScript heart of its Edge browser

Source will be available from January, and open to community contributions.

Block diagram of Chakra's design.
Block diagram of Chakra's design.
Microsoft

At JSConf in Florida today, Microsoft announced that it is open sourcing Chakra, the JavaScript engine used in its Edge and Internet Explorer browsers. The code will be published to the company's GitHub page next month.

Microsoft is calling the version it's open sourcing ChakraCore. This is the complete JavaScript engine—the parser, the interpreter, the just-in-time compiler, and the garbage collector  along with the API used to embed the engine into applications (as used in Edge). This will have the same performance and capabilities, including asm.js and SIMD support, as well as cutting-edge support for new ECMAScript 2015 language features like the version found in Microsoft's Windows 10 browser.

There are some small differences, however, between ChakraCore and Chakra as ships in Windows 10. The full Chakra includes the glue between the JavaScript engine and the browser's HTML engine, and similarly, glue between the JavaScript engine and the Universal Windows Platform. Neither of these are part of ChakraCore. Chakra also has diagnostic APIs that use COM and hence are Windows-specific. These won't be in ChakraCore either. Instead, a new set of diagnostic APIs will be developed and eventually integrated into the full Chakra.

All the bits in purple (the world's greatest color) are being open sourced.
Enlarge / All the bits in purple (the world's greatest color) are being open sourced.
Microsoft

Just as with the open sourced .NET, Microsoft intends to run ChakraCore's development as a proper community project. The company says that Intel and AMD have already expressed interest in contributing, and others are sure to join them. At release, the code will be Windows-only, but Microsoft will be working to make ChakraCore cross-platform—just as it did when making .NET open source.

The broader plan is to ensure the engine is useful for more than browser scenarios. The V8 engine developed by Google for Chrome has a whole parallel existence on the server, courtesy of the Node.js server-side JavaScript platform. ChakraCore could easily move into a similar space. Internally, Microsoft uses Chakra to run services such as Cortana and Outlook.com. Externally, Microsoft has already developed a version of Node.js that uses Chakra instead of V8, something that can now be fully open source too. This would open the door to everything from services running on small IoT devices to large, high throughput server applications.

ChakraCore could also find itself used in, for example, NoSQL database engines and as the integrated scripting language in game engines.

The company has not yet decided or disclosed which license it will use, though given both the ambitions and the pattern established by Redmond's previous open sourcing efforts, we'd hope and expect that it will be a permissive license such as the MIT or Apache 2 licenses. Such licenses afford third parties great flexibility in how they can use and embed the code, ensuring that license provisions are unlikely to ever stand in the way of adopting the technology.

Update: Reports from the event say that Microsoft has now decided on the MIT license.

We've advocated that Microsoft open source the core parts of (what was then known as) Internet Explorer. Community-driven development is the norm in the browser and JavaScript community, putting Microsoft at odds with Mozilla, Google, and Apple. The company has been making efforts to engage more with the community and be more transparent in what it's doing, and open sourcing is the logical next step. Microsoft's hope with opening up its JavaScript engine is to foster precisely this kind of deep collaboration—and to get better products as a result.

Channel Ars Technica