全网最全的 JavaScript 运行时大盘点

287 阅读5分钟

封面.png

对于大多数前端开发者而言,可能对 Node.js、Deno、Bun 这几个比较熟悉,对 edge-light、LLTR、fastly、netlify、wasmer、workerd 确很少听说。下面将对这些运行时做一下详细介绍。

Node.js

Node.js封面.png

nodejs.org/en

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.png

deno.com/

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.png

bun.sh/

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-light.png

github.com/vercel/edge…

Edge Runtime 是标准 Web API 的一个子集,可与最多的环境兼容和互操作,它旨在帮助框架作者采用边缘计算,并提供基于 Web 标准的开源工具。它旨在集成到框架(如 Next.js)中,而不是用于应用程序代码。该运行时特意采用了最小化设计,以保证安全性和速度。

当您的框架基于 Edge Runtime 构建时,它可以在 Node.js 运行的任何地方运行。部署到 Vercel 等基础架构时,Next.js 等框架会自动为您提供最佳基础架构。

LLTR

LLRT.png

github.com/awslabs/llr…

LLRT(低延迟运行时)是一种轻量级 JavaScript 运行时,旨在满足对快速高效的无服务器应用程序日益增长的需求。与在 AWS Lambda 上运行的其他 JavaScript 运行时相比,LLRT 的启动速度最多可提高 10 倍以上,总体成本最多可降低 2 倍。

LLRT 由 Rust 构建,使用 QuickJS 作为 JavaScript 引擎,确保高效的内存使用和快速启动。

请注意:LLRT 是一个实验性软件包。它可能会发生变化,仅供评估之用。它也不打算与 Node 兼容,尽管 WinterCG 可能是一个更现实的目标。它并不打算成为 bun 那样的通用运行时。它的竞争对手是 workerd 和 Lagon。

fastly

github.com/fastly/js-c…

Fastly Compute 是一个基于开放标准的高级无服务器平台,可在我们的全球边缘网络上以您最喜爱的语言运行您的代码。它旨在满足现代应用程序开发的要求,使客户能够在一个高度安全的执行环境中运行代码,在边缘网络上实现微秒级的冷启动时间。

netlify

netlify.png

docs.netlify.com/edge-functi…

Edge Functions 将 Netlify 平台和工作流程与网络边缘的开放运行时标准连接起来。这使您能够利用开发工具生态系统构建快速、个性化的网络体验。

使用 TypeScript 和 JavaScript,您可以修改网络请求以本地化内容、提供相关广告、验证访问者身份、A/B 测试内容等。边缘功能还支持新一代边缘优先网络框架,允许您的整个应用程序在边缘运行,从而显著提高性能。

所有这些动态处理都是在一个基于 Deno 的安全运行时中进行的,直接来自最靠近每个用户的全球网络边缘位置,以实现快速响应时间。此外,您还可以选择缓存边缘功能响应,以获得更快的响应时间。使用 Netlify,您的边缘功能与 Netlify 网站的其他部分一起进行版本控制、构建和部署。这消除了开销,并为您的边缘功能带来了部署预览和回滚的功能。

wasmer/winterjs

winterjs-logo-black.png

github.com/wasmerio/wi…

WinterJS 1.0 号称是最快的 JavaScript Web 服务器,在单 CPU 内核上每秒可处理 58,000 多个请求。它旨在与 Cloudflare Apps 无缝协作,并支持 React Server Components,从而加快网站开发速度。它允许在部分应用程序中使用 Rust 等语言,有望提高性能。它对速度和 Cloudflare 集成感到兴奋,但对它的新颖性和大型项目的准备情况感到担忧。

workerd

workerd.png

github.com/cloudflare/…

workerd 是一个 JavaScript / Wasm 服务器运行时,其代码与 Cloudflare Workers 的代码相同。workerd(读作"worker dee"),名字来自 Unix 命名服务器的传统,后缀"-d"代表守护进程,该名称没有大写,因为它是一个程序名称,而在类 Unix 环境中,程序名称通常是小写的。您可能会用到它:

  • 作为应用程序服务器,自行托管为 Cloudflare Workers 设计的应用程序。
  • 作为开发工具,在本地开发和测试此类代码。
  • 作为可编程 HTTP 代理(正向或反向),有效拦截、修改和路由网络请求。

以上就是对所有运行时的介绍,如果你也对此感兴趣,欢迎留言探讨。