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 +33 -0
- package/SURFACE.md +1 -1
- package/package.json +7 -7
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sproutboat",
|
|
3
|
-
"version": "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.
|
|
68
|
-
"@sproutboat/toolchain": "^0.19.
|
|
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.
|
|
82
|
-
"@sproutboat/cli-darwin-x64": "0.
|
|
83
|
-
"@sproutboat/cli-linux-arm64": "0.
|
|
84
|
-
"@sproutboat/cli-linux-x64": "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"
|