sproutboat 0.37.0 → 0.39.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,39 @@ maintained going forward by the `release` skill.
10
10
 
11
11
  ## Unreleased
12
12
 
13
+ ## [0.39.0] - 2026-10-27
14
+
15
+ Built on `@sproutboat/runtime` 0.34.3, `@sproutboat/toolchain` 0.19.3 and
16
+ `@sproutboat/wire` 0.20.2.
17
+
18
+ ### Performance
19
+
20
+ - **D1 queries cost less CPU in standalone builds.** A D1 call no longer goes through `JSON.stringify` and
21
+ `JSON.parse` on both sides of the in-process dispatch, and from compatibility date 2026-10-24 the rows of a
22
+ strict D1 result are built as JS arrays in C straight from the SQLite cells instead of being written as JSON
23
+ and parsed again. Same results and error messages.
24
+ - **`atob` is faster.** Each character is looked up in a 128-entry table, and the same pass validates, so a JWT
25
+ check (three base64url decodes) costs less. Same output and same `InvalidCharacterError` cases.
26
+ - **`JSON.stringify` of strings is faster.** Each character is read straight from the string and stored when it
27
+ needs no escape. The output is byte-identical.
28
+
29
+ ## [0.38.0] - 2026-10-27
30
+
31
+ Built on `@sproutboat/runtime` 0.34.2, `@sproutboat/toolchain` 0.19.2 and
32
+ `@sproutboat/wire` 0.20.2.
33
+
34
+ ### Performance
35
+
36
+ - **A request costs about a quarter of the CPU it did.** Most of it was one thing: Porffor's `globalThis`
37
+ rebuilt the whole global object (one write per top-level binding) on every read, and a plain request
38
+ made about eleven reads. A read of `globalThis` now rewrites only the bindings that changed, the
39
+ runtime's own request path reads no `globalThis` at all, the client IP and trusted-proxy headers are
40
+ read once per process, and `x-sb-cpu-ms` is added to your Response instead of building a second one.
41
+ Measured on one pinned x86 core, a 404 from a standalone binary went from 319 to 89 microseconds of CPU
42
+ per request when saturated (3,100 to 11,000 requests per second on that core); a small JSON 200 from
43
+ 322 to 78. `globalThis.x` in your own code is cheap too: 20,000 reads with 600 top-level functions took
44
+ 9.3 s before and a few milliseconds now. Nothing in the responses changes.
45
+
13
46
  ## [0.37.0] - 2026-10-27
14
47
 
15
48
  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.39.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.39.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.3",
68
+ "@sproutboat/toolchain": "^0.19.3",
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.39.0",
82
+ "@sproutboat/cli-darwin-x64": "0.39.0",
83
+ "@sproutboat/cli-linux-arm64": "0.39.0",
84
+ "@sproutboat/cli-linux-x64": "0.39.0"
85
85
  },
86
86
  "engines": {
87
87
  "node": ">=18"