写点什么

微软开源 Chakra,并计划在上面运行 Node.js

  • 2016-01-15
  • 本文字数:1114 字

    阅读完需:约 4 分钟

微软兑现了开放Edge 浏览器JavaScript 虚拟机的承诺,遵循宽松的 MIT 许可协议开放了 Chakra 的源代码。开源代码以 ChakraCore 的名称发布,基本上同微软用于 Edge 和通用 Windows 平台(UWP)的 VM 是同一个,只是去掉了同 Edge 和 UWP 的绑定以及部分 COM 诊断 API。

ChakraCore 是作为一个嵌入式引擎推出的,可以包含到各种桌面、服务器和 IoT 应用程序中,微软希望开发者发现它在这个方面的用途。该引擎使用 JavaScript 运行时(JSRT)API 进行了封装,后者提供了到 _ 运行时 _ 及一个或多个 _ 执行上下文 _ 的访问。ChakraCore 有自己的垃圾收集和异常管理。它所支持的 ECMA2015 语言特性都不需要任何设置,但要在 ChakraCore 中使用 _Promises_,需要将 Promises 任务在 _EnqueueJob_ 中排队。

除了常用的 V8 虚拟机外,微软还致力于在 ChakraCore 引擎上运行 Node.js。通过在 JSRT 上创建了一个 V8 shim,他们已经实现了这一目标,使 Node.js 应用程序可以正常运行,而不需要知道底层的 JavaScript VM。该项目托管在 GitHub 上,名为 Microsoft/node

微软计划向 ChakraCore 添加现代化的诊断 API,而且他们正致力于 Time Travel Debugger 的研发。这是一款调试工具,允许开发人员在调试过程中回到上一步,这有助于调试包含回调的代码。微软已经在一个 Node.js/ChakraCore 应用程序(包含超过 100 个模块,运行在装有 Windows 10 IoT 的 Raspberry Pi 2 上)上演示了该调试器。他们计划继续发展这项技术,待它成熟后将其开放。

在不久的将来,微软计划从Linux Ubuntu 15.10 x64 开始将ChakraCore 移植到其他平台。他们还计划正式支持部分目前通过试验标识支持的JavaScript 特性——解构赋值、默认参数、指数运算符、Async。他们将通过试验标识支持ES2015 模块,并计划通过asm.js 管道运行 WebAssembly 代码。

开发人员会使用 ChakraCore 吗?微软认为他们会的。微软展示了诱人的性能基准测试结果,其中,Edge 在Octane 2.0 和Jet Stream 两项测试上击败了最新版本的Chrome 和Firefox。此外,从 Kangax 的 JavaScript 兼容性表格可以看出,ChakraCore 支持 79% 的 ES6 特性,相比之下,Firefox 45 支持 85%,而 Chrome 49 支持 71%。不管应用结果如何,微软都计划开放 CharkraCore 的开发,包括将结果用到 Edge 和 UWP 上。

查看英文原文: Microsoft Open Sources Chakra and Wants to Run Node.js on It


感谢谢丽对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群(已满),InfoQ 读者交流群(#2))。

2016-01-15 18:003030
用户头像

发布了 1008 篇内容, 共 373.6 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

手起刀落,连斩获阿里(四面)+字节(四面)+美团(三面)三家一线大厂Offer!

Java架构追梦

Java 架构 面试

平面设计之PS(前序)

空城机

PhotoShop ps 4月日更

BBK智能合约系统开发|BBK智能合约APP软件开发

系统开发

Rust从0到1-结构体-定义和实例化

rust struct 结构体

Spring Boot + RabbitMQ实现订单过期自动取消功能

Lonely Sufferer

RabbitMQ springboot

【Java 试题】AQS解析

程序员架构进阶

AQS Java源码 28天写作 4月日更

假期后来一波干货:一文理清JVM和GC

比伯

Java 程序员 架构 JVM 计算机

你在备战“字节”时一定需要这个,程序员进大厂指南+算法已开源

Java架构师迁哥

「架构实战营」模块一作业

between

架构实战营

架构实战营模块 1 作业

Geek_2b52aa

架构实战营

架构实战营模块1作业

竹林七贤

书单|互联网企业面试案头书之运营篇

博文视点Broadview

教你一个著名的流行数据格式:Python JSON

华为云开发者联盟

Python 数据 Python JSON JSON序列化 半结构化数据

超低功耗LoRa无线通信应用实践

不脱发的程序猿

物联网 无线通信 4月日更 LoRa 无线通信模组

CSS实现动画环绕下划线效果

Sakura

4月日更

模块一:课后作业

sN0wpeak

架构实战营

“区块链+版权”应用保护者

电微13828808271

7 个非常实用的 Shell 拿来就用脚本实例!

JackTian

Linux 编程 Shell 脚本语言 运维工程师

企业为何开始选择使用成品训练数据集?

澳鹏Appen

人工智能 机器学习 大数据 数据集 数据流

架构实战营第一次作业

CmHuang

架构实战营

面试笔记(二)线程池连环炮

U2647

Thread 4月日更

牛比特小矿工系统开发|牛比特小矿工软件APP开发

系统开发

拍乐云 x 扬帆出海 x LiveCloud:音视频出海专家干货分享

拍乐云Pano

flutter ios android WebRTC RTC

架构训练营

架构训练营

“区块链+”,应用积分营销

电微13828808271

区块链

有了这个框架,平台开发谁还手敲代码?

华为云开发者联盟

华为云 智慧园区 MainPortal 统一门户 HDC2021

架构实战营-模块1-微信业务架构-学生系统架构备选方案

吴建中

这6个浏览器插件,让你的浏览器大为不同。

彭宏豪95

chrome 浏览器 插件 chrome扩展 4月日更

情指勤一体化指挥调度平台建设,重点人员管理平台

人生苦短,我用Python之小游戏

Bob

开发者 Python 游戏编程 4月日更 -python

3d导航栏

赫鲁小夫

4月日更

微软开源Chakra,并计划在上面运行Node.js_开源_Abel Avram_InfoQ精选文章