sproutboat 0.39.0 → 0.41.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 +34 -0
- package/SURFACE.md +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,40 @@ maintained going forward by the `release` skill.
|
|
|
10
10
|
|
|
11
11
|
## Unreleased
|
|
12
12
|
|
|
13
|
+
## [0.41.0] - 2026-10-28
|
|
14
|
+
|
|
15
|
+
Built on `@sproutboat/runtime` 0.34.5, `@sproutboat/toolchain` 0.19.5 and
|
|
16
|
+
`@sproutboat/wire` 0.20.2.
|
|
17
|
+
|
|
18
|
+
### Performance
|
|
19
|
+
|
|
20
|
+
- **`JSON.stringify` returns an 8-bit string when it can**, and skips the zeroed buffer for a plain string.
|
|
21
|
+
The feed endpoint of the API-challenge app goes from about 475 to 415 us of CPU per request.
|
|
22
|
+
- **A strict D1 row's text goes into one arena**, and ASCII text becomes a JS string in one copy
|
|
23
|
+
(standalone binaries). The feed endpoint gains about 16 us per request.
|
|
24
|
+
- **The client address is folded once per distinct address**, not on every request.
|
|
25
|
+
About 1.5% of a request.
|
|
26
|
+
- Together, on the API-challenge mix on one pinned x86 core, the stack holds 3,200 req/s or more at the bar
|
|
27
|
+
(p95 under 500 ms, p99 under 1 s, errors under 1%) where the previous release held 2,800.
|
|
28
|
+
|
|
29
|
+
## [0.40.0] - 2026-10-28
|
|
30
|
+
|
|
31
|
+
Built on `@sproutboat/runtime` 0.34.4, `@sproutboat/toolchain` 0.19.4 and
|
|
32
|
+
`@sproutboat/wire` 0.20.2.
|
|
33
|
+
|
|
34
|
+
### Performance
|
|
35
|
+
|
|
36
|
+
- **A standalone binary collects garbage every 8 requests**, and once it has been quiet for about 50 ms,
|
|
37
|
+
instead of after every response. On the API-challenge mix at 900 req/s the CPU per request goes from about
|
|
38
|
+
550 to about 470 us, and the feed endpoint from 940 to 750 us, for about 2 MiB more resident memory.
|
|
39
|
+
`SB_GC_EVERY=<n>` sets the interval (`1` restores a collection after each request). A request that needs
|
|
40
|
+
more heap than is free still collects when it allocates. sproutd's collector and density are untouched.
|
|
41
|
+
- **JWT verification costs less CPU.** `atob` decodes in C for the usual input and falls back to the
|
|
42
|
+
existing code for everything else, `TextEncoder.encode` sizes and fills the array in two C passes, the
|
|
43
|
+
`ArrayBuffer` returned by `crypto.subtle.sign` and `digest` is copied with one `memcpy`, and the
|
|
44
|
+
constant-time compare behind `verify` runs in C. A typical `authenticate()` goes from 21.5 to 7 us on an
|
|
45
|
+
M-series host. What throws, and what it throws, is unchanged.
|
|
46
|
+
|
|
13
47
|
## [0.39.0] - 2026-10-27
|
|
14
48
|
|
|
15
49
|
Built on `@sproutboat/runtime` 0.34.3, `@sproutboat/toolchain` 0.19.3 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.41.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.5",
|
|
68
|
+
"@sproutboat/toolchain": "^0.19.5",
|
|
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.41.0",
|
|
82
|
+
"@sproutboat/cli-darwin-x64": "0.41.0",
|
|
83
|
+
"@sproutboat/cli-linux-arm64": "0.41.0",
|
|
84
|
+
"@sproutboat/cli-linux-x64": "0.41.0"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": ">=18"
|