2023 年 7 月 5 日,Deno 团队发布了 Deno 1.35 版本。此次更新的目的是使程序开发尽量简单,因此运行时内置强大的工具链、原生 TypeScript 支持和 Web 标准 API,可以跳过配置和学习新 API,并立即开始工作。
此次版本更新带来如下改进:
Deno.serve()
API 现已稳定,提供一种快速便捷的方式来构建 Web 服务器。Deno.serve()
允许开发人员使用一句代码设置 Web 服务器:
Deno.serve((req) => new Response("hello world"));
相比之前的 Deno.serveHttp()
API,Deno.serve()
API 使用 Web 标准的 Request 和 Response 对象,可无缝配合 fetch()、Web 流等其他标准 API。
此外,Deno.serve()
提供可观的性能改进。Deno 团队的基准测试显示,使用 Deno.serve()
构建的 Hello World 服务器的吞吐量是 Node.js 服务器的两倍,具有更好的尾部延迟和更高效的内存使用。
- 改进 npm 支持度。Deno 的 npm 兼容性允许使用熟悉的 npm 包,降低供应链风险。
此次月度版本更新对 http
、https
和 zlib
模块的兼容性进行了大幅改进。下面列出了对 Node.js 内置模块的完整更改:
fs.FileHandle
http.ClientRequest.upgrade
http.IncomingMessageForClient.complete
http2
https.createServer
process.reallyExit
v8.setFlagsFromString
zlib.brotliCompress
zlib.brotliCompressSync
zlib.brotliDecompress
zlib.brotliDecompressSync
zlib.createBrotliCompress
zlib.createBrotliDecompress
每次发布都对更多 npm 包进行支持。这次发布对这些 API 的改进使得以下重要 npm 包在 Deno 中可以正常工作:
npm:astro
npm:aws-sdk
npm:axios
npm:discord.js
npm:node-fetch
npm:parcel
npm:puppeteer
npm:redis
下个月,Deno 团队将专注于使 @grpc/grpc-js
、google-cloud-node
以及各种数据库驱动程序在 Deno 中工作。如果发现某些 npm 包无法工作,请在 denoland/deno
仓库提交 issue 报告。
此外,Deno 1.35 还包括 Deno
命名空间的 API 添加、Web API 更改、语言服务器改进以及标准库的变更等其他许多改进和修复。
最终,Deno 1.35 配备了 V8 11.6 和 TypeScript 5.1.6。