sproutboat 0.41.0 → 0.42.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 +27 -0
- package/SURFACE.md +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,33 @@ maintained going forward by the `release` skill.
|
|
|
10
10
|
|
|
11
11
|
## Unreleased
|
|
12
12
|
|
|
13
|
+
## [0.42.0] - 2026-10-28
|
|
14
|
+
|
|
15
|
+
Built on `@sproutboat/runtime` 0.35.0, `@sproutboat/toolchain` 0.20.0 and
|
|
16
|
+
`@sproutboat/wire` 0.20.3.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **A standalone binary opens its SQLite databases in EXCLUSIVE locking mode by default.** The lock is
|
|
21
|
+
taken once and held, so a transaction no longer takes and releases file locks around itself (about two
|
|
22
|
+
`fcntl` calls per request), and the WAL index lives in memory instead of a `-shm` file. The page cache
|
|
23
|
+
stays at 2 MB; `SB_SQLITE_CACHE_MB=<n>` (1 to 4096) sizes it. **While the binary runs, no other process can
|
|
24
|
+
open its databases:** the `sqlite3` shell, `sproutboat kv|d1 --local --data-dir` and several copies behind
|
|
25
|
+
`SO_REUSEPORT` are locked out. Set `SB_SQLITE_EXCLUSIVE=0` to keep shared locking. Databases under LTX
|
|
26
|
+
replication are never exclusive. sproutd and the broker are unchanged.
|
|
27
|
+
|
|
28
|
+
### Performance
|
|
29
|
+
|
|
30
|
+
- **A request's fixed cost drops its text round trips, regular expressions and repeated lookups**: the CPU
|
|
31
|
+
stamp and the streamed-body probe return numbers, `Headers` checks names and values in C, the ingress
|
|
32
|
+
header reads scan the stored names, and an empty `waitUntil` list creates no coroutine.
|
|
33
|
+
- **A strict D1 query in a standalone binary takes a direct lane**, with no statement closures, no regular
|
|
34
|
+
expression for the transaction check and a result header built as JS values instead of JSON text.
|
|
35
|
+
- **No 88 KiB `mmap` and `munmap` for every statement that builds a temporary table** (`INSERT ...
|
|
36
|
+
RETURNING`, sorts). On the API-challenge create endpoint that is about 930 to 700 us of CPU per request.
|
|
37
|
+
- **A response's plain-ASCII header names, header values and body are written straight from the heap**
|
|
38
|
+
instead of through a `malloc`ed copy (standalone binaries).
|
|
39
|
+
|
|
13
40
|
## [0.41.0] - 2026-10-28
|
|
14
41
|
|
|
15
42
|
Built on `@sproutboat/runtime` 0.34.5, `@sproutboat/toolchain` 0.19.5 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.42.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,9 +64,9 @@
|
|
|
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.
|
|
68
|
-
"@sproutboat/toolchain": "^0.
|
|
69
|
-
"@sproutboat/wire": "^0.20.
|
|
67
|
+
"@sproutboat/runtime": "^0.35.0",
|
|
68
|
+
"@sproutboat/toolchain": "^0.20.0",
|
|
69
|
+
"@sproutboat/wire": "^0.20.3"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@oxlint/plugins": "1.85.0",
|
|
@@ -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.42.0",
|
|
82
|
+
"@sproutboat/cli-darwin-x64": "0.42.0",
|
|
83
|
+
"@sproutboat/cli-linux-arm64": "0.42.0",
|
|
84
|
+
"@sproutboat/cli-linux-x64": "0.42.0"
|
|
85
85
|
},
|
|
86
86
|
"engines": {
|
|
87
87
|
"node": ">=18"
|