写点什么

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

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

关注

评论

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

动态尺寸模型优化实践之Shape Constraint IR Part I

阿里云大数据AI技术

深度学习 编译器

量化交易合约机器人系统开发策略分析

薇電13242772558

量化策略

开源的价值观与文化的传递

开源社

#开源

泄露了,22年阿里巴巴秋招内部面试资料,看完之后剑指offer

Java面试那些事儿

Java 编程 程序员 面试 架构师

我和谷歌共成长——我的Google Play上车之路

云村的泊

8月月更

【限时领奖】消息队列 MNS 训练营重磅来袭,边学习充电,边领充电宝~

阿里巴巴中间件

阿里云 云原生 消息队列 课程 MNS

QCA9882 wallys 802.11AC 802.11AN wifi QCA9882 Module Wireless AC/AN MiniPCIE Standard Card

wallys-wifi6

QCA9882

秒验丨Android端SDK API使用说明

MobTech袤博科技

android UI 秒验

10种有用的Linux Bash_Completion 命令示例

华为云开发者联盟

Linux 后端 开发

4步教你学会使用Linux-Audit工具

华为云开发者联盟

Linux 工具 安全 监控 开发

2min速览:从设计、实现和优化角度浅谈Alluxio元数据同步

Alluxio

元数据 数据同步 Alluxio 大数据 开源 8月月更

怎样评测对比报表工具的性能?

Bug终结者

Java sql SPL 8月月更

乔布斯之后,下一代触控交互由一家中国公司重新定义

硬科技星球

开源一夏 | 在 STM32L051 上使用 RT-Thread (二、无线温湿度传感器 之 CubeMX配置)

矜辰所致

开源 RT-Thread 8月月更 STM32L051

C#/VB.NET 替换 PDF 文件上的现有图像

在下毛毛雨

C# .net PDF 替换图像

国产系统的不足或许可以靠小程序弥补

Geek_99967b

小程序

全新物联网数据集成:Flow可视化编排&双向数据桥接

EMQ映云科技

物联网 IoT flow emqx 8月月更

短视频直播app源码——软件系统开发方案

开源直播系统源码

软件开发 直播系统源码 短视频直播源码 短视频直播

QCA9880 wallys 2×2 MIMO 802.11ac Mini PCIe 2,4GHz / 5GHz Designed for E

wallys-wifi6

数据结构——二叉树

工程师日月

8月月更

融会贯通,并行不悖 | 2022年8月《中国数据库行业分析报告》精彩抢先看

墨天轮

数据库 greenplum MPP 国产数据库 HTAP

华为云构建云原生DevSecOps平台,保障软件供应链全流程安全可信

华为云开发者联盟

云计算 云原生 安全 后端 华为云

闲谈Serverless,价值和未来

白留明(Armin.Lionheart)

云计算 Serverless Faas

面向大规模数据的云端管理,百度沧海存储产品解析

百度Geek说

人工智能 数据

基于深度学习的细粒度分类研究及应用

之家技术

人工智能 深度学习 模型 图像 CVPR

加密市场的投资布局,Zebec实属价值洼地

西柚子

Solana上的结算协议龙头,Zebec潜力颇受看好

小哈区块

.NET 6 SignalR websocket 入门(一)

辣么大

.net SignalR 8月月更

OpenHarmony轻量设备Hi3861芯片开发板启动流程分析

OpenHarmony开发者

OpenHarmony

微服务、网关、服务发现/注册的正确打开方式

Java全栈架构师

Java 程序员 架构 微服务 程序人生

TiFlash 源码阅读(六)DeltaTree Index 的设计和实现分析

PingCAP

TiDB TiDB 源码解读

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