Deno 2021 回顾:优化内核兼容 Node.js

Posted InfoQ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deno 2021 回顾:优化内核兼容 Node.js相关的知识,希望对你有一定的参考价值。

作者 | Aaron O\'Mullan 等人
译者 | Sambodhi
策划 | 闫园园  

2021 年是 Deno 获得资助发展的第一个整年。我们的公司 有 10 个员工,而且还在不断增加。

Deno CLI 自 从 2020 年 5 月发布 1.0 版本 之后就已经在稳定地发展了。2021 年,我们推出了 44 个版本(11 个小版本,33 个补丁),上新了关键特性,修复了大量错误,并进行了重大性能优化。关于每个版本的细节,请参阅相应的博文:v1.7、v1.8、v1.9、v1.10、v1.11、v1.12、v1.13、v1.14、v1.15、v1.16、v1.17。

让我们来讨论一些重要的发展。

支持的高性能 HTTP 服务器。

  •  serve  Response();上的,它们提供了巨大的吞吐量和延迟。

    标志启用。大部分的工作涉及在 std/node 中提供 polyfills。

    一些关键的模块如 tlszlib 仍然不完整,但在目前的形式下,你仍然可以运行重要的应用程序。我们的目标是在未来几个月内推出适合所有用户的第一个迭代版本。

    通往 Deno 2 的道路

    2021 年 9 月,我们开始讨论 Deno 2 版本可能是什么样子的。API 中有很多细微的改变需要处理,但是我们也在调查基本的变化,以改善 Deno 的工作流。预计不久之后,我们将发布 Deno 2 的路线图,并希望在今年上半年就能交付。它将专注于更好的 NPM 生态系统的兼容性,为常见的工作流程提供更好的 DX,并探索替代的包管理解决方案。

    作者介绍:

    Aaron O\'Mullan,Deno 首席工程师;Bartek Iwańczuk,Deno 工程师;Ryan Dahl,Deno 首席执行官。

    原文链接:

    https://deno.com/blog/deno-in-2021

    点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

    今日好文推荐

    怼腾讯高管的应届生回应被标注“永不录用”;程序员跳槽B站遭老东家索赔200万;马斯克40颗卫星被磁暴摧毁|Q资讯

    被升级整疯了,Etsy 放弃 React

    75%新项目都可以“无脑”选择单体架构

    InfoQ 最新 Java 发展趋势报告

    点个在看少个 bug 

    Deno 2021 回顾:优化内核兼容 Node.js

    作者 | Aaron O\'Mullan 等人
    译者 | Sambodhi
    策划 | 闫园园

    2021 年是 Deno 获得资助发展的第一个整年。我们的公司有 10 个员工,而且还在不断增加。

    Deno CLI 自从 2020 年 5 月发布 1.0 版本之后就已经在稳定地发展了。2021 年,我们推出了 44 个版本(11 个小版本,33 个补丁),上新了关键特性,修复了大量错误,并进行了重大性能优化。关于每个版本的细节,请参阅相应的博文:v1.7、v1.8、v1.9、v1.10、v1.11、v1.12、v1.13、v1.14、v1.15、v1.16、v1.17。

    让我们来讨论一些重要的发展。

    serve Response();console.log("Listening on http://localhost:3000");

    因为这些绑定是建立在 hyper 上的,它们提供了巨大的吞吐量和延迟。

    MDN 兼容性表

    2021 年 8 月,Deno 被添加到 MDN 兼容性表中。

    Deno 非常重视 Web 兼容性;我们用 WPT(Web Platform Tests,Web 平台测试)对 Deno 进行了测试,WPT 是所有主要浏览器使用的测试套件,以确保符合规范。测试套件的结果可以在 wpt.fyi 上找到。

    外部功能接口

    在 Deno v1.13 中,我们用一个新的外部功能接口(Foreign Function Interface,FFI)API 取代了不稳定的插件系统。FFI 仍然被认为是不稳定的,但我们认为这是一个重大的改进。

    在 1.13 版之前,原生插件系统允许使用 Rust 编写的动态库。由于 Rust ABI 的不稳定,以及将 API 作者限制在一种语言中,我们决定用一个通用的 FFI API 来取代这个系统。这个 API 允许开发者用任何使用 C 语言调用约定的语言来编写 Deno 运行时的“扩展”。

    我们已经看到一些使用 FFI API 的有趣项目,展示了 FFI API 的强大功能:

  • 桌面应用框架

  • Python 解释器绑定

  • SDL2 绑定

  • SerialPort 绑定

  • SQLite 绑定

  • Slack 与下一代平台

    2021 年 11 月,Slack 宣布其基于 Deno 的下一代开发平台。除了 Slack,我们一直在与其他合作伙伴合作,以开发和交付伟大的 Deno 赋能产品。我们相信 Deno Deploy 的“隔离即服务”为以下方面提供了坚实的基础:

  • 现代边缘托管

  • 用户可扩展的平台(机器人、插件、应用程序等。)

  • 低代码解决方案

  • Node.js 兼容性

    在 2021 年第四季度,我们开始努力提供一流的 Node.js 兼容性。允许 Deno 直接在 Deno 中运行为 Node.js 开发的应用程序和库(NPM 包),没有任何变化。

    在 Deno v1.15 中,我们提供了“兼容模式”的第一个预览。该特性仍然不稳定,但可以使用 --compat 标志启用。大部分的工作涉及在 std/node 中提供 polyfills。

    一些关键的模块如 tls 和 zlib 仍然不完整,但在目前的形式下,你仍然可以运行重要的应用程序。我们的目标是在未来几个月内推出适合所有用户的第一个迭代版本。

    通往 Deno 2 的道路

    2021 年 9 月,我们开始讨论 Deno 2 版本可能是什么样子的。API 中有很多细微的改变需要处理,但是我们也在调查基本的变化,以改善 Deno 的工作流。预计不久之后,我们将发布 Deno 2 的路线图,并希望在今年上半年就能交付。它将专注于更好的 NPM 生态系统的兼容性,为常见的工作流程提供更好的 DX,并探索替代的包管理解决方案。

    作者介绍:

    Aaron O\'Mullan,Deno 首席工程师;Bartek Iwańczuk,Deno 工程师;Ryan Dahl,Deno 首席执行官。

    原文链接:

    https://deno.com/blog/deno-in-2021

    以上是关于Deno 2021 回顾:优化内核兼容 Node.js的主要内容,如果未能解决你的问题,请参考以下文章

    TypeScript--deno前置学习

    有啥方法可以将 Node 项目转换为 Deno?

    esm.sh 和 jspm.org 在 deno 兼容性方面是不是遵循相同的方法?

    2021再看Deno(CDN for JavaScript modules的思考)

    Deno v0.3.0 来啦!浏览器兼容更进一步了

    Deno 会取代 Node.js 吗?