当前位置:首页 > 科技  > 软件

快的离谱! 新的 JS 运行时 WinterJS 来了!每秒 150k 请求,速度超过 Bun、Node.js

来源: 责编: 时间:2024-03-18 09:40:01 228观看
导读WinterJS 1.0 终于发布了!WinterJS 是一个使用 Rust 编写的、与 WinterCG 兼容的 JavaScript 运行时,使用 SpiderMonkey 引擎执行 JavaScript,并使用 Tokio 处理底层的 HTTP 请求和 JS 事件循环。WinterJS 运行时还可以

WinterJS 1.0 终于发布了!yds28资讯网——每日最新资讯28at.com

WinterJS 是一个使用 Rust 编写的、与 WinterCG 兼容的 JavaScript 运行时,使用 SpiderMonkey 引擎执行 JavaScript,并使用 Tokio 处理底层的 HTTP 请求和 JS 事件循环。WinterJS 运行时还可以编译为 WebAssembly,并且因此是第一个完全可在 Wasmer Edge 中运行的生产级运行时。yds28资讯网——每日最新资讯28at.com

以下是我们在 WinterJS 1.0 中取得的成就,距离我们的首次公告仅过了四个月:yds28资讯网——每日最新资讯28at.com

  • 飞快的速度(比 Bun、WorkerD 和 Node 更快!)
  • WinterJS 现在完全兼容* WinterCG 规范
  • Cloudflare API 兼容性
  • Web 框架支持:Next.js(支持 React 服务器组件!)、Hono、Astro、SvelteKit 等

现在,让我们更详细地了解每个特性!yds28资讯网——每日最新资讯28at.com

飞快的速度

WinterJS 1.0 在本地执行时能够处理 150,000 个请求/秒(使用 WASIX 编译为 Wasm 后为 20,000 个请求/秒)。yds28资讯网——每日最新资讯28at.com

截至今日,WinterJS 比 Bun(117,000 请求/秒)、WorkerD(40,000 请求/秒)和 Node(75,000 请求/秒)处理更多的请求/秒(请参见基准测试)。yds28资讯网——每日最新资讯28at.com

图片图片yds28资讯网——每日最新资讯28at.com

WinterCG 兼容性

WinterCG 是负责定义一组全局类和函数的机构之一,这些类和函数需要存在才能在一组基础架构上正确运行工作负载。yds28资讯网——每日最新资讯28at.com

自我们首次公告以来,我们已经添加了对完整一套 API 的支持,包括:yds28资讯网——每日最新资讯28at.com

  • Data fetching:fetch、URL、Request、Response
  • Files:Blob、File
  • Streams:ReadableStream、WritableStream、TransformStream*
  • Text Encoders:TextEncoder、TextEncoderStream、atob、btoa
  • Cryptography:crypto*

注意:变换流中的反压和一些(非常见的)加密算法尚未实现。yds28资讯网——每日最新资讯28at.com

Cloudflare API 兼容性

我们希望确保大多数前端框架在 WinterJS 中都能无缝运行,无需额外处理。因此,我们有两个选择:yds28资讯网——每日最新资讯28at.com

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

经过对 Deno、Cloudflare 和 Fastly 适配器的深入分析,我们意识到最强大的选择是 Cloudflare,因为它已经支持了其他 API 框架的大部分功能,并且可能是最常用的。因此,我们决定采用 Cloudflare API 兼容性。yds28资讯网——每日最新资讯28at.com

为了支持 Cloudflare Worker 的工作负载,我们着手解决了四个主要方面的问题:yds28资讯网——每日最新资讯28at.com

  • 通过 import 语法支持 ES 模块
  • 通过 Node.js 兼容性 API 支持
  • 通过node:async_hooks 支持 AsyncLocalStorage
  • 通过 _routes.json 支持调用路由
  • 支持文件系统结构
_worker.jsindex.htmlmystaticimage.jpg
  • 支持 Cloudflare 的 WinterCG 自定义 fetch API
export default { async fetch(request, env, ctx) {  return new Response('Hello World!'); },}

以及 env.ASSETS API,它允许通过 Rust 的超级优化的静态 Web 服务器直接提供静态资产,因此您可以执行:yds28资讯网——每日最新资讯28at.com

export default {  async fetch(request, env) {    const url = new URL(request.url);    if (url.pathname.startsWith('/api/')) {      // TODO: Add your custom /api/* logic here.      return new Response('Ok');    }    // Otherwise, serve the static assets.    // Without this, the Worker will error and no assets will be served.    return env.ASSETS.fetch(request);  },}}

[请在此处查看完整的自定义 Cloudflare fetch API:](https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/)yds28资讯网——每日最新资讯28at.com

在获得所有这些功能之后,我们几乎可以通过传递 --mode=cloudflare 来运行任何其他网络框架。yds28资讯网——每日最新资讯28at.com

winterjs --mode=cloudflare output/static  # OR (using WASIX)wasmer run wasmer/winterjs --net --mapdir=output/static:/web -- --mode=cloudflare /web

现有 Web 框架的兼容性

由于与 Cloudflare Workers API 的新兼容性,我们现在完全支持以下框架,不仅可以提供框架生成的静态网站,还可以让这些框架进行服务器端渲染(SSR):yds28资讯网——每日最新资讯28at.com

  • Next.js(应用模板,演示)
  • Next.js React 服务器组件(应用模板,演示)- 注意:服务器端获取缓存尚未实现
  • Hono(应用模板,演示)
  • Astro.build(应用模板,演示)
  • Remix.run(应用模板,演示)
  • Svelte(应用模板,演示)
  • Gatsby(应用模板,演示)
  • Nuxt(应用模板,演示)

支持 React 服务器组件

我们取得的最具挑战性的成就之一是运行具有服务器组件支持的 Next.js 服务器,因此渲染可以完全在服务器端完成。yds28资讯网——每日最新资讯28at.com

努力使 React 服务器组件完全可用有助于我们发现我们的流实现与规范存在一些细微但重要的差异。我们还意识到我们的获取实现有一些怪癖需要修复,但最终,在经过许多汗水和不眠之夜后,我们完全做到了!

本文链接:http://www.28at.com/showinfo-26-76506-0.html快的离谱! 新的 JS 运行时 WinterJS 来了!每秒 150k 请求,速度超过 Bun、Node.js

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: ASP.Net Core读取配置文件的三种方法

下一篇: 如何使用增强现实优化数据中心和IT规划

标签:
  • 热门焦点
  • 鸿蒙OS 4.0公测机型公布:甚至连nova6都支持

    华为全新的HarmonyOS 4.0操作系统将于今天下午正式登场,官方在发布会之前也已经正式给出了可升级的机型产品,这意味着这些机型会率先支持升级享用。这次的HarmonyOS 4.0支持
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 十个可以手动编写的 JavaScript 数组 API

    JavaScript 中有很多API,使用得当,会很方便,省力不少。 你知道它的原理吗? 今天这篇文章,我们将对它们进行一次小总结。现在开始吧。1.forEach()forEach()用于遍历数组接收一参
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人“珍藏”是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
  • 华为将推出盘古数字人大模型 可帮助用户12小时完成数字人生成

    在今日举行的2023年华为云数字文娱AI创新峰会上,华为云全球Marketing与销售服务总裁石冀琳表示,华为云将在后续推出盘古数字人大模型,可帮助用户12小
  • OPPO K11采用全方位护眼屏:三大护眼能力减轻视觉疲劳

    日前OPPO官方宣布,全新的OPPO K11将于7月25日正式发布,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼IMX890主摄,堪称是2000档位影像表
Top