mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
Add workerd benchmark
This commit is contained in:
@@ -4,20 +4,16 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "react-hello-world",
|
"name": "react-hello-world",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react": "next",
|
"react": "^19.2.0",
|
||||||
"react-dom": "next",
|
"react-dom": "^19.2.0",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="],
|
"react": ["react@19.2.0", "", {}, "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ=="],
|
||||||
|
|
||||||
"loose-envify": ["loose-envify@1.4.0", "", { "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="],
|
"react-dom": ["react-dom@19.2.0", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.0" } }, "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ=="],
|
||||||
|
|
||||||
"react": ["react@18.3.0-next-b72ed698f-20230303", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-l6RbwXa9Peerh9pQEq62DDypxSQfavbybY0wV1vwZ63X0P5VaaEesZAz1KPpnVvXjTtQaOMQsIPvnQwmaVqzTQ=="],
|
"scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
|
||||||
|
|
||||||
"react-dom": ["react-dom@18.3.0-next-b72ed698f-20230303", "", { "dependencies": { "loose-envify": "^1.1.0", "scheduler": "0.24.0-next-b72ed698f-20230303" }, "peerDependencies": { "react": "18.3.0-next-b72ed698f-20230303" } }, "sha512-0Gh/gmTT6H8KxswIQB/8shdTTfs6QIu86nNqZf3Y0RBqIwgTVxRaQVz14/Fw4/Nt81nK/Jt6KT4bx3yvOxZDGQ=="],
|
|
||||||
|
|
||||||
"scheduler": ["scheduler@0.24.0-next-b72ed698f-20230303", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-ct4DMMFbc2kFxCdvbG+i/Jn1S1oqrIFSn2VX/mam+Ya0iuNy+lb8rgT7A+YBUqrQNDaNEqABYI2sOQgqoRxp7w=="],
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,13 +4,14 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "react-hello-world.node.js",
|
"main": "react-hello-world.node.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"build:workerd": "bun build react-hello-world.workerd.jsx --outfile=react-hello-world.workerd.js --format=esm --production"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "Colin McDonnell",
|
"author": "Colin McDonnell",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react": "next",
|
"react": "^19.2.0",
|
||||||
"react-dom": "next"
|
"react-dom": "^19.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using Workerd = import "/workerd/workerd.capnp";
|
||||||
|
|
||||||
|
const config :Workerd.Config = (
|
||||||
|
services = [
|
||||||
|
(name = "main", worker = .mainWorker),
|
||||||
|
],
|
||||||
|
|
||||||
|
sockets = [
|
||||||
|
( name = "http",
|
||||||
|
address = "*:3001",
|
||||||
|
http = (),
|
||||||
|
service = "main"
|
||||||
|
),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
const mainWorker :Workerd.Worker = (
|
||||||
|
modules = [
|
||||||
|
(name = "worker", esModule = embed "react-hello-world.workerd.js"),
|
||||||
|
],
|
||||||
|
compatibilityDate = "2025-01-01",
|
||||||
|
compatibilityFlags = ["nodejs_compat"],
|
||||||
|
);
|
||||||
53
bench/react-hello-world/react-hello-world.workerd.js
Normal file
53
bench/react-hello-world/react-hello-world.workerd.js
Normal file
File diff suppressed because one or more lines are too long
24
bench/react-hello-world/react-hello-world.workerd.jsx
Normal file
24
bench/react-hello-world/react-hello-world.workerd.jsx
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
// Cloudflare Workers version with export default fetch
|
||||||
|
// Run with: workerd serve react-hello-world.workerd.config.capnp
|
||||||
|
|
||||||
|
import React from "react";
|
||||||
|
import { renderToReadableStream } from "react-dom/server";
|
||||||
|
|
||||||
|
const headers = {
|
||||||
|
"Content-Type": "text/html",
|
||||||
|
};
|
||||||
|
|
||||||
|
const App = () => (
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<h1>Hello World</h1>
|
||||||
|
<p>This is an example.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default {
|
||||||
|
async fetch(request) {
|
||||||
|
return new Response(await renderToReadableStream(<App />), { headers });
|
||||||
|
},
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user