QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

微软开源 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:003267
用户头像

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

关注

评论

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

漏洞检测方法如何选?详解源代码与二进制SCA检测原理

华为云开发者联盟

安全 漏洞 软件成分分析 源代码SCA检测 二进制SCA检测

TypeScript 之模板字面量类型

冴羽

JavaScript typescript 翻译 大前端

架构实战营:模块一作业

Geek_93ffb0

「架构实战营」

震惊!大势已来!!区块链的真正价值是什么?

CECBC

基于云的技术架构设计实践 - 第3篇

hackstoic

签约计划第二季 业务安全

谈谈创业感想

wood

创业 28天写作

低代码平台是伪需求?不好意思,你的同行已经靠它完成转型升级了!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 低代码平台

如何对Android 11进行网络状态监听

Changing Lin

12月日更

华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

华为云开发者联盟

数据库 时序数据库 GaussDB(for Influx) 时序数据 数据压缩

青藤:一招制敌!微隔离,让勒索软件不再横行

青藤云安全

低代码实现探索(五)前端组件图形化脚本

零道云-混合式低代码平台

安全第二话

张老蔫

28天写作

普普通通的Route

Time-sun

flutter

区块链等技术将为中欧跨境电商带来革新以及助力城市产业转型升级

CECBC

架构训练营-模块一作业

zhongwy

架构实战营

选课排课软件原生开发选课排课小程序模式源码开发

风行无疆

浪潮云跻身中国政务大数据管理平台市场领导者位置

云计算 云计算运维

【架构实战营】模块六

衣谷

架构实战营

如何建成有效的前端效能度量体系

benyasin

大前端 研发效能 研发度量 研发提效

如何处理工作与生活之间的冲突?

石云升

28天写作 职场经验 12月日更

焱融 YRCloudFile 连获两项重量级认证,展现强劲存储实力!

焱融科技

云计算 分布式 云原生 高性能 文件存储

7个连环问揭开java多线程背后的弯弯绕

华为云开发者联盟

Java 多线程 工作内存 主内存

基于RPA的自动化优先,正在成为广大组织的主流管理思维

王吉伟频道

RPA 机器人流程自动化 业务流程管理 自动化优先 业务流程自动化

低代码实现探索(四)前端组件核心模型

零道云-混合式低代码平台

你看到什么是因为要你看到什么

mtfelix

28天写作

聚合架构第一讲:开篇啦

钰湚—付晓岩

企业架构 软件工程 数字化转型 软件架构 业务架构

清空数组的几个方式

CRMEB

实用机器学习笔记六:数据清理

打工人!

机器学习 算法 学习笔记 12月日更 实用机器学习

拆分电商系统为微服务

Beyond Ryan

6.《重学JAVA》--数据类型

杨鹏Geek

Java 25 周年 28天写作 12月日更

低代码实现探索(三)后台模型执行设计

零道云-混合式低代码平台

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