sproutboat 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,23 @@ maintained going forward by the `release` skill.
10
10
 
11
11
  ## Unreleased
12
12
 
13
+ ## [0.38.0] - 2026-10-27
14
+
15
+ Built on `@sproutboat/runtime` 0.34.2, `@sproutboat/toolchain` 0.19.2 and
16
+ `@sproutboat/wire` 0.20.2.
17
+
18
+ ### Performance
19
+
20
+ - **A request costs about a quarter of the CPU it did.** Most of it was one thing: Porffor's `globalThis`
21
+ rebuilt the whole global object (one write per top-level binding) on every read, and a plain request
22
+ made about eleven reads. A read of `globalThis` now rewrites only the bindings that changed, the
23
+ runtime's own request path reads no `globalThis` at all, the client IP and trusted-proxy headers are
24
+ read once per process, and `x-sb-cpu-ms` is added to your Response instead of building a second one.
25
+ Measured on one pinned x86 core, a 404 from a standalone binary went from 319 to 89 microseconds of CPU
26
+ per request when saturated (3,100 to 11,000 requests per second on that core); a small JSON 200 from
27
+ 322 to 78. `globalThis.x` in your own code is cheap too: 20,000 reads with 600 top-level functions took
28
+ 9.3 s before and a few milliseconds now. Nothing in the responses changes.
29
+
13
30
  ## [0.37.0] - 2026-10-27
14
31
 
15
32
  Built on `@sproutboat/runtime` 0.34.1, `@sproutboat/toolchain` 0.19.1 and
package/SURFACE.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Generated by `src/surface.test.ts` from `src/surface.ts` + the pinned
4
4
  > toolchain constants. Do not edit by hand — run `UPDATE_SURFACE=1 bun test`.
5
5
 
6
- **Package:** `sproutboat` 0.37.0
6
+ **Package:** `sproutboat` 0.38.0
7
7
 
8
8
  ## Commands
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sproutboat",
3
- "version": "0.37.0",
3
+ "version": "0.38.0",
4
4
  "description": "Wrangler-shaped CLI for Sproutboat. Deploys workers to any control plane via --api-url / SPROUTBOAT_API_URL.",
5
5
  "keywords": [
6
6
  "cli",
@@ -64,8 +64,8 @@
64
64
  "@sproutboat/artifact": "^0.3.0",
65
65
  "@sproutboat/assets": "^0.3.0",
66
66
  "@sproutboat/config": "^0.6.0",
67
- "@sproutboat/runtime": "^0.34.1",
68
- "@sproutboat/toolchain": "^0.19.1",
67
+ "@sproutboat/runtime": "^0.34.2",
68
+ "@sproutboat/toolchain": "^0.19.2",
69
69
  "@sproutboat/wire": "^0.20.2"
70
70
  },
71
71
  "devDependencies": {
@@ -78,10 +78,10 @@
78
78
  "typescript": "7.0.2"
79
79
  },
80
80
  "optionalDependencies": {
81
- "@sproutboat/cli-darwin-arm64": "0.37.0",
82
- "@sproutboat/cli-darwin-x64": "0.37.0",
83
- "@sproutboat/cli-linux-arm64": "0.37.0",
84
- "@sproutboat/cli-linux-x64": "0.37.0"
81
+ "@sproutboat/cli-darwin-arm64": "0.38.0",
82
+ "@sproutboat/cli-darwin-x64": "0.38.0",
83
+ "@sproutboat/cli-linux-arm64": "0.38.0",
84
+ "@sproutboat/cli-linux-x64": "0.38.0"
85
85
  },
86
86
  "engines": {
87
87
  "node": ">=18"