Microsoft Edge’s JavaScript engine to go open-source

Windows

Windows
Today at
Please, Log in or Register to view URLs content!
in Florida, we announced that we will open-source the core components of Chakra as ChakraCore, which will include all the key components of the JavaScript engine powering Microsoft Edge. We expect to open the ChakraCore repository on GitHub next month.

DSCF4523-2-1024x683.jpg

Please, Log in or Register to view URLs content!
on stage at
Please, Log in or Register to view URLs content!
announcing ChakraCore


Chakra offers best-in-class JavaScript execution with the
Please, Log in or Register to view URLs content!
and dependable performance, reliability, and scalability. We expect ChakraCore to be used wherever these factors are important, ranging from cloud-based services to the Internet of Things and beyond.

We’re investing more than ever in improving Chakra, and are excited to team up with our community to drive further improvements. 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.

Chakra: A modern JavaScript engine


In 2008, we
Please, Log in or Register to view URLs content!
, 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. 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 to do concurrent and partial collections.

Please, Log in or Register to view URLs content!

Chakra & ChakraCore’s multi-tiered execution pipeline


Since Chakra’s inception, JavaScript has expanded from a language that primarily powered the web browser experience to a technology that supports
Please, Log in or Register to view URLs content!
, server side applications, cloud based services, NoSQL databases, game engines, front-end tools and most recently, the Internet of Things. Over time, Chakra evolved to fit many of these contexts and has been optimized to deliver great experiences across them all. This meant that apart from throughput, Chakra had to support
Please, Log in or Register to view URLs content!
. Chakra’s interpreter played a key role in easy portability of the technology across platform architectures.

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. It powers services such
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
. It is used by (and optimized for)
Please, Log in or Register to view URLs content!
. And with Windows 10, we
Please, Log in or Register to view URLs content!
, to help advance the reach of Node.js ecosystem and make Node.js available on a new IoT platform:
Please, Log in or Register to view URLs content!
.

With the release of Windows 10 earlier this year, Chakra was not only
Please, Log in or Register to view URLs content!
, but more than doubled its performance on some key JavaScript benchmarks owned by other browser vendors.

Please, Log in or Register to view URLs content!

Chakra’s performance on key JavaScript benchmarks – Octane and JetStream
(System info: 64-bit browsers on Intel Core i5-34755 @ 2.90Ghz with 4.0GB RAM running Windows 10)


Additionally, Chakra supports most of the
Please, Log in or Register to view URLs content!
and has support for some of the future ECMAScript proposals like
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
. It supports
Please, Log in or Register to view URLs content!
and the team is a key participant in helping evolve
Please, Log in or Register to view URLs content!
.

Please, Log in or Register to view URLs content!

Chakra has the most support for ES6 features of any shipping browser (
Please, Log in or Register to view URLs content!
)


Since its introduction in 2008, Chakra has grown to be a perfect choice for the web, cloud services, and the Internet of Things. 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.

What’s in ChakraCore?


ChakraCore is 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.

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. As we make progress on these new diagnostics APIs, we plan to make them available in Chakra as well.

Please, Log in or Register to view URLs content!

Componentization of Chakra and ChakraCore

What’s next for ChakraCore?


Any modern JavaScript Engine must deliver on a performance envelope that goes beyond browser scenarios, encompassing everything from small-footprint devices for IoT applications, all the way up to high-throughput, massively parallel server applications based on cloud technologies.

ChakraCore is already designed to fit into any application stack that calls for a fast, scalable, and lightweight engine. 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.

Contributing to ChakraCore


Starting in January, we will open our public GitHub repository for community contributions. At that time, we will provide more detail on our initial priorities and guidance on how to contribute effectively to the project. 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. We also welcome suggestions on how to improve ChakraCore for particular scenarios that are important to you or your business.

We are committed to making Microsoft Edge and its associated ecosystem a benchmark for collaborative innovation, interoperability, and developer productivity. This commitment led to initiatives like the new
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
, and
Please, Log in or Register to view URLs content!
to foster a two-way dialog between the Microsoft Edge team and the community. Open-sourcing ChakraCore is a natural complement to that effort, and is inspired by the same principles of openness and transparency.

We’re excited about this milestone, and are hopeful that developing in the open will allow us to collaborate even more deeply with more developers around the world, resulting in better products for everyone. If you have any questions or if there is something we didn’t cover, let us know
Please, Log in or Register to view URLs content!
or in the comments section below! We look forward to sharing more soon.

Please, Log in or Register to view URLs content!
, Principal PM Manager
– Adalberto Foresti, Principal Program Manager

Please, Log in or Register to view URLs content!
 

Users who are viewing this thread

Top