WinterJS 1.0 終于發(fā)布了!
WinterJS 是一個(gè)使用 Rust 編寫的、與 WinterCG 兼容的 JavaScript 運(yùn)行時(shí),使用 SpiderMonkey 引擎執(zhí)行 JavaScript,并使用 Tokio 處理底層的 HTTP 請(qǐng)求和 JS 事件循環(huán)。WinterJS 運(yùn)行時(shí)還可以編譯為 WebAssembly,并且因此是第一個(gè)完全可在 Wasmer Edge 中運(yùn)行的生產(chǎn)級(jí)運(yùn)行時(shí)。
以下是我們?cè)?WinterJS 1.0 中取得的成就,距離我們的首次公告僅過了四個(gè)月:
現(xiàn)在,讓我們更詳細(xì)地了解每個(gè)特性!
WinterJS 1.0 在本地執(zhí)行時(shí)能夠處理 150,000 個(gè)請(qǐng)求/秒(使用 WASIX 編譯為 Wasm 后為 20,000 個(gè)請(qǐng)求/秒)。
截至今日,WinterJS 比 Bun(117,000 請(qǐng)求/秒)、WorkerD(40,000 請(qǐng)求/秒)和 Node(75,000 請(qǐng)求/秒)處理更多的請(qǐng)求/秒(請(qǐng)參見基準(zhǔn)測(cè)試)。
圖片
WinterCG 是負(fù)責(zé)定義一組全局類和函數(shù)的機(jī)構(gòu)之一,這些類和函數(shù)需要存在才能在一組基礎(chǔ)架構(gòu)上正確運(yùn)行工作負(fù)載。
自我們首次公告以來,我們已經(jīng)添加了對(duì)完整一套 API 的支持,包括:
注意:變換流中的反壓和一些(非常見的)加密算法尚未實(shí)現(xiàn)。
我們希望確保大多數(shù)前端框架在 WinterJS 中都能無縫運(yùn)行,無需額外處理。因此,我們有兩個(gè)選擇:
經(jīng)過對(duì) Deno、Cloudflare 和 Fastly 適配器的深入分析,我們意識(shí)到最強(qiáng)大的選擇是 Cloudflare,因?yàn)樗呀?jīng)支持了其他 API 框架的大部分功能,并且可能是最常用的。因此,我們決定采用 Cloudflare API 兼容性。
為了支持 Cloudflare Worker 的工作負(fù)載,我們著手解決了四個(gè)主要方面的問題:
_worker.jsindex.htmlmystaticimage.jpg
export default { async fetch(request, env, ctx) { return new Response('Hello World!'); },}
以及 env.ASSETS API,它允許通過 Rust 的超級(jí)優(yōu)化的靜態(tài) Web 服務(wù)器直接提供靜態(tài)資產(chǎn),因此您可以執(zhí)行:
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); },}}
[請(qǐng)?jiān)诖颂幉榭赐暾淖远x Cloudflare fetch API:](https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/)
在獲得所有這些功能之后,我們幾乎可以通過傳遞 --mode=cloudflare 來運(yùn)行任何其他網(wǎng)絡(luò)框架。
winterjs --mode=cloudflare output/static # OR (using WASIX)wasmer run wasmer/winterjs --net --mapdir=output/static:/web -- --mode=cloudflare /web
由于與 Cloudflare Workers API 的新兼容性,我們現(xiàn)在完全支持以下框架,不僅可以提供框架生成的靜態(tài)網(wǎng)站,還可以讓這些框架進(jìn)行服務(wù)器端渲染(SSR):
我們?nèi)〉玫淖罹咛魬?zhàn)性的成就之一是運(yùn)行具有服務(wù)器組件支持的 Next.js 服務(wù)器,因此渲染可以完全在服務(wù)器端完成。
努力使 React 服務(wù)器組件完全可用有助于我們發(fā)現(xiàn)我們的流實(shí)現(xiàn)與規(guī)范存在一些細(xì)微但重要的差異。我們還意識(shí)到我們的獲取實(shí)現(xiàn)有一些怪癖需要修復(fù),但最終,在經(jīng)過許多汗水和不眠之夜后,我們完全做到了!
本文鏈接:http://www.www897cc.com/showinfo-26-76506-0.html快的離譜! 新的 JS 運(yùn)行時(shí) WinterJS 來了!每秒 150k 請(qǐng)求,速度超過 Bun、Node.js
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
下一篇: 如何使用增強(qiáng)現(xiàn)實(shí)優(yōu)化數(shù)據(jù)中心和IT規(guī)劃