Deno 2021回顾:优化核心、兼容Node.js、正在准备Deno 2

生产开源中国

作者局长

Deno 官方博客回顾了2021年发生的重大事件和新的重要功能。博客提到,Deno 2021年发布了44个版本(11个小版本更新,33个补丁更新),增加了很多重要功能,修复了很多错误,优化了性能。

Deno Deploy

2021年夏天,Deno Deploy 发布了首个 Beta 版本,这是由 Deno 团队从零开始构建现代 serverless 云,用户可以很快使用它 JavaScript、TypeScript 和 WASM 服务部署到世界各地的数据中心。

优化 Deno 核心

Deno 核心提供了”opcalls”功能(与 syscalls 类似,也称),允许此功能 JavaScript 调用 runtime(fs/net/url-parsing/…)提供的 Rust 函数。在1.9版本发布之前,开发者通过混合使用 JSON 二进制缓冲区对 opcall 编组值。

op-layer 效率是决定 runtime 整体性能的关键因素。opcalls 以前每次调用40000ns 费用现在减少到原来的1%左右,每次调用只需40%ns。这些效率的提高大多得益于这些效率的提高 serdev这是开发团队 v1.9版本设计并交付 Rust 和 V最大化8值之间的值 efficient bijection。

开发团队将通过此功能 URL 分析等常见操作的费用降低了3 并使 Deno 成熟快速 JavaScript runtime。

可以查看更多介绍 Deno 1.9发布说明。

原生 HTTP

在 Deno 1.9.开发团队发布了原生 HTTP 服务器绑定器绑定了这个功能 Deno 1.13进入稳定状态。使用这些绑定只需几行代码就可以创建高性能hyperHTTP 由于这些绑定构建在服务器上hyper它们提供了巨大的吞吐量。

MDN Compatibility Tables

Deno on MDN

2021年 8月,Deno 被添加到 MDN compatibility tables。

Deno 2021回顾:优化核心、兼容Node.js、正在准备Deno 2

外部函数接口(Foreign Function Interface)

在 Deno v1.13中开发团队使用新的 Foreign Function Interface API 更换不稳定的插件系统。 FFI 还处于不稳定阶段,但这是一个显著的改善。

1.允许发布13前的原生插件系统 Rust 动态库的编写 Rust ABI 不稳定,将 API 作者仅限于单一语言,Deno 团队决定使用通用的 FFI API 替换此系统 API 允许开发人员随意使用 C 调用约定的语言 Deno runtime 编写扩展。

部分使用已经诞生 FFI API 展示了有趣的项目 FFI API 强大的功能。

Desktop app frameworkPython interpreter bindingsSDL2 bindingsSerialPort bindingsSQLite bindings

Slack &下一代平台

2021年 11月,Slack 宣布其基础 Deno 下一代开发平台。Deno 团队表示,Deno Deploy 隔离即服务为以下方面提供了坚实的基础:

现代边缘托管用户可以扩展平台(机器人、插件、应用程序等…)低代码解决方案

Node.js 兼容性

2021年第四季度,Deno 团队开始努力提供一流的服务 Node.js 兼容性,允许 Deno 直接在 Deno 中运行为 Node.js 应用程序和库的开发(NPM 包)。在 Deno v1.团队在15中发布”compat mode”第一个预览版。虽然该功能仍然不稳定,但可以使用–compat标志启用。大部分工作都涉及到 std/node 中提供 polyfills。

一些关键模块,比如tls和zlib它仍然不完整,但在目前的形式下仍然可以运行 non-trivial 应用程序类型。该团队表示,其目标是在未来几个月推出适合所有用户的第一个迭代版本。

Deno 2

对于 Deno 2.团队表示会解决很多小问题 API 变化,优化 Deno 工作流。它们很快就会发布 Deno 2路线图,希望在今年上半年推出。Deno 专注于提供更好的 NPM 生态兼容性作流程提供更好的生态兼容性 DX,并探索替代包管理解决方案。

(0)
上一篇 2022年12月15日 上午11:46
下一篇 2022年12月15日 上午11:48

相关推荐

wx