比 Bun 还快的 JS 运行时来了!WinterJS 1.0 发布!

WinterJS 是一个非常快的、与 WinterCG 兼容的 Javascript 运行时,使用 Rust 编写,使用 SpiderMonkey 引擎执行 JavaScript,并使用 Tokio 处理底层 HTTP 请求和 JS 事件循环。WinterJS 运行时也可以编译为 WebAssembly,因此是第一个完全可在 Wasmer Edge 中运行的生产级运行时。

以下是 WinterJS 在首次发布后的四个月内为 WinterJS 1.0 所取得的成就:

  • 极快的速度(比 Bun、WorkerD 和 Node 更快)
  • WinterJS 现在与 WinterCG 规范完全兼容
  • Cloudflare API 兼容性
  • Web 框架支持:Next.js(支持 React Server Components)、Hono、Astro、SvelteKit 等

极快的速度

现在,让我们更详细地了解每个功能!

WinterJS 1.0 在本机执行时能够每秒处理 150k 请求(使用WASIX编译为 Wasm 时每秒能够处理 20k 请求)。

截至今天,WinterJS 每秒可以处理的请求数比 Bun、WorkerD 和 Node 更多。

WinterCG 兼容性

WinterCG 是负责定义一组全局类和函数的机构之一,这些类和函数需要存在,以便在一组基础设施上正确运行工作负载。

自首次发布以来,WinterJS 增加了对整套 API 的支持,包括:

  • Data fetching: fetchURLRequestResponse
  • Files: BlobFile
  • Streams: ReadableStreamWritableStreamTransformStream*
  • Text Encoders: TextEncoderTextEncoderStreamatobbtoa
  • Cryptography: crypto*

注意:转换流中的背压和一些(非常见)加密算法尚未实现

Cloudflare API 兼容性

WinterJS 希望确保大多数前端框架在 WinterJS 中都能无缝运行,无需额外处理。因此 WinterJS 有两个选择:

  • 为每个前端框架创建全新的集成
  • 加入一个现有的提案

经过对 Deno、Cloudflare 和 Fastly 适配器的深入分析,WinterJS 的开发团队意识到最强大的选择是 Cloudflare,因为它支持了其他 API 框架的大部分功能,并且可能是最常用的。因此 WinterJS 决定采用 Cloudflare API 兼容性。

为了支持 Cloudflare Worker 的工作负载,WinterJS 着手解决了四个主要方面的问题:

  • 通过 import 语法支持 ES 模块
  • 通过 Node.js 兼容性 API 支持
  • 通过 node:async_hooks 支持 AsyncLocalStorage
  • 通过 _routes.json 支持调用路由
  • 支持文件系统结构
  • 支持 Cloudflare 的 WinterCG 自定义 fetch API

在获得所有这些功能之后,我们只需要通过传递 --mode=cloudflare 来运行任何其他网络框架。

Web 框架支持

由于与 Cloudflare Workers API 的新兼容性,WinterJS 现在完全支持以下框架,不仅为框架生成的静态网站提供服务,还允许这些框架进行服务器端渲染(SSR):

  • Next.js
  • Hono
  • Astro
  • Remix
  • Svelte
  • Gatsby
  • Nuxt

支持 React 服务器组件

WinterJS 取得的最具挑战性的成就之一是运行带有服务器组件支持的 Next.js 服务器,因此渲染可以完全在服务器端完成。

您可以查看使用 React 服务器端组件演示版 Hacker News,请注意在此演示中,WinterJS 没有在服务器端缓存获取结果,因此加载时间可能不是最快的。

WinterJS 现在距离将 Next.js 前端从 Vercel 迁移到 Wasmer Edge 只有一个小步骤了。成本更低并且具有完整的本地可再现性。

下一步是什么

WinterJS 1.0 仅仅是一个开始。Wasmer 正在开发一种在边缘部署应用程序的新方法,尝试前沿技术,为您的项目实现令人难以置信的新用例。

参考链接:wasmer.io/posts/winte...

相关推荐
snow@li1 分钟前
Charles:软件能力深度解析 / 跨平台 HTTP/HTTPS 代理调试工具 / 客户端与互联网之间的中间人代理 / 拦截、查看、篡改所有网络流量
前端
Pearson5 分钟前
特大pdf文件在线预览技术方案
javascript·nginx·pdf
AIFQuant5 分钟前
全球行情自动更新、多品种展示、性能优化实战指南
python·性能优化·金融·node.js·restful
UXbot7 分钟前
移动端UI设计工具选型指南:iOS与Android设计标准支持对比
android·前端·低代码·ios·交互·团队开发·ui设计
GuWen_yue8 分钟前
吃透二叉树与递归!60分钟掌握树结构核心+解题思路
javascript·算法
去码头整点薯条ing10 分钟前
某红书笔记接口逆向【x-s参数】
javascript·爬虫·python
weixin_li152********20 分钟前
《Angular 中优雅地处理枚举值:Map + *ngIf as 替代多次 *ngIf》
javascript·vue.js·angular.js
程序员黑豆21 分钟前
AI全栈开发 - Java:数据类型
java·前端
江华森24 分钟前
Tomcat 10 实战部署指南:从零到生产级 Web 容器
java·前端·tomcat