对于大多数前端开发者而言,可能对 Node.js、Deno、Bun 这几个比较熟悉,对 edge-light、LLTR、fastly、netlify、wasmer、workerd 确很少听说。下面将对这些运行时做一下详细介绍。
Node.js
Node.js 是最常见的 JavaScript 运行时,被 Stack Overflow 开发人员评为2023年最流行的网络技术。Node.js 由 Ryan Dahl 创建,于 2009 年发布。当前最新版本为 v20.11.1(LTS) 和 21.7.1 版本。Node.js 官网最近也进行了 UI 和 UX 升级。
Node.js 新官网来了,UI 和 UX 全面升级,欢迎体验和反馈!
Deno
Deno 是一个基于 Rust 的 JavaScript 运行时。与 Node.js 一样,它也是由 Ryan Dahl 创建并发布的,希望能改进 Node.js 中提供的功能。Deno 的主要重点之一是提高 Node.js 的安全性,并旨在更好地支持 JSX 和 TypeScript,以更好地面向 Web 标准。
Deno 拥有一个工具生态系统,使开发人员能够快速启动他们的项目。Fresh 是专为 Deno 打造的网络框架,最新版本为 1.6.6,而 Lume 则是其静态网站生成器。
Fresh: github.com/denoland/fr…
Lume: lume.land/
Bun
Bun 是一个快速的全能工具包,用于运行、构建、测试和调试 JavaScript 和 TypeScript(从单个文件到全栈应用程序)。Bun 的核心是一个快速的 JavaScript 运行时,旨在取代 Node.js。它是用 Zig 语言编写的,并在底层由 JavaScriptCore 提供支持,大大减少了启动时间和内存使用。
🔥 2022年7月,Bun v0.1.1发布,Githu Star 数成指数级增长,成为年度最火的前端项目。随着2023年9月 v1.0 版本的发布,Bun 彻底火爆,被广大前端开发者圈粉。
🔥 最新消息,Bun windows 版本即将发布,当前测试用例已经通过 94.53%,这也预示着 Bun Windows 版本即将和大家见面,感兴趣的可以关注。
edge-light
Edge Runtime 是标准 Web API 的一个子集,可与最多的环境兼容和互操作,它旨在帮助框架作者采用边缘计算,并提供基于 Web 标准的开源工具。它旨在集成到框架(如 Next.js)中,而不是用于应用程序代码。该运行时特意采用了最小化设计,以保证安全性和速度。
当您的框架基于 Edge Runtime 构建时,它可以在 Node.js 运行的任何地方运行。部署到 Vercel 等基础架构时,Next.js 等框架会自动为您提供最佳基础架构。
LLTR
LLRT(低延迟运行时)是一种轻量级 JavaScript 运行时,旨在满足对快速高效的无服务器应用程序日益增长的需求。与在 AWS Lambda 上运行的其他 JavaScript 运行时相比,LLRT 的启动速度最多可提高 10 倍以上,总体成本最多可降低 2 倍。
LLRT 由 Rust 构建,使用 QuickJS 作为 JavaScript 引擎,确保高效的内存使用和快速启动。
请注意:LLRT 是一个实验性软件包。它可能会发生变化,仅供评估之用。它也不打算与 Node 兼容,尽管 WinterCG 可能是一个更现实的目标。它并不打算成为 bun 那样的通用运行时。它的竞争对手是 workerd 和 Lagon。
fastly
Fastly Compute 是一个基于开放标准的高级无服务器平台,可在我们的全球边缘网络上以您最喜爱的语言运行您的代码。它旨在满足现代应用程序开发的要求,使客户能够在一个高度安全的执行环境中运行代码,在边缘网络上实现微秒级的冷启动时间。
netlify
Edge Functions 将 Netlify 平台和工作流程与网络边缘的开放运行时标准连接起来。这使您能够利用开发工具生态系统构建快速、个性化的网络体验。
使用 TypeScript 和 JavaScript,您可以修改网络请求以本地化内容、提供相关广告、验证访问者身份、A/B 测试内容等。边缘功能还支持新一代边缘优先网络框架,允许您的整个应用程序在边缘运行,从而显著提高性能。
所有这些动态处理都是在一个基于 Deno 的安全运行时中进行的,直接来自最靠近每个用户的全球网络边缘位置,以实现快速响应时间。此外,您还可以选择缓存边缘功能响应,以获得更快的响应时间。使用 Netlify,您的边缘功能与 Netlify 网站的其他部分一起进行版本控制、构建和部署。这消除了开销,并为您的边缘功能带来了部署预览和回滚的功能。
wasmer/winterjs
WinterJS 1.0 号称是最快的 JavaScript Web 服务器,在单 CPU 内核上每秒可处理 58,000 多个请求。它旨在与 Cloudflare Apps 无缝协作,并支持 React Server Components,从而加快网站开发速度。它允许在部分应用程序中使用 Rust 等语言,有望提高性能。它对速度和 Cloudflare 集成感到兴奋,但对它的新颖性和大型项目的准备情况感到担忧。
workerd
workerd 是一个 JavaScript / Wasm 服务器运行时,其代码与 Cloudflare Workers 的代码相同。workerd(读作"worker dee"),名字来自 Unix 命名服务器的传统,后缀"-d"代表守护进程,该名称没有大写,因为它是一个程序名称,而在类 Unix 环境中,程序名称通常是小写的。您可能会用到它:
- 作为应用程序服务器,自行托管为 Cloudflare Workers 设计的应用程序。
- 作为开发工具,在本地开发和测试此类代码。
- 作为可编程 HTTP 代理(正向或反向),有效拦截、修改和路由网络请求。
以上就是对所有运行时的介绍,如果你也对此感兴趣,欢迎留言探讨。