Skip to content

Reduce Turbopack cache size with per-family compression - #97714

Merged
lukesandberg merged 10 commits into
canaryfrom
codex/turbo-persistence-family-compression
Sep 2, 2026
Merged

Reduce Turbopack cache size with per-family compression#97714
lukesandberg merged 10 commits into
canaryfrom
codex/turbo-persistence-family-compression

Conversation

@lukesandberg

@lukesandberg lukesandberg commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

What?

Adds per-family compression configuration to turbo-persistence and configures the Turbopack filesystem cache according to each keyspace's access pattern:

Family Compression Reason
Infra LZ4 Preserve the existing fast encode/decode path
TaskMeta LZ4 Avoid HC encode CPU for a marginal whole-cache size gain
TaskCache LZ4 Values are inline and no value blocks compressed in measured caches
TaskData zstd level 3 Prioritize the dominant disk-size opportunity

Each meta file records the family's compression algorithm as one explicit byte, which is validated against FamilyConfig when the database opens. SST block and blob layouts remain unchanged.

Why?

LZ4 decode performance is important for cache query latency, but using one codec for every keyspace leaves a substantial disk-size opportunity in TaskData. The final split keeps Infra, TaskMeta, and TaskCache on the existing ordinary LZ4 path, while TaskData spends modestly more CPU to reduce persistent cache size.

LZ4 HC4 was evaluated and removed before finalizing: across three real caches it made TaskMeta compression 4.24× slower for only 1.51% total cache-directory savings. Infra and TaskCache made no compression calls. Removing HC4 does not affect reads because HC4 and ordinary LZ4 use the same decoder.

How?

Real (tiny) Next.js cache A/B test

Final results after removing HC4, using three cold and five warm runs per workload:

Workload Cache size Cold/write Warm/read
test/e2e/filesystem-cache -19.45% +2.38% +3.98%
test/e2e/app-dir/app-rendering -18.87% -0.81% -2.69%
test/e2e/app-dir/client-reference-chunking -19.84% -0.80% -3.70%
Combined medians -19.41% (96.79 → 78.00 MiB) +0.23% -1.19%

The mixed warm result on the smallest fixture and apparent improvements elsewhere are treated as noise; combined measurements show no material write/read regression.

Temporary crate benchmark instrumentation

To demonstrate the cost of the retained codecs, temporary write/read benchmarks applied each codec to identical synthetic data. The benchmark code is not included in the final patch.

Codec Synthetic write vs LZ4 Uncached get Cached get DB size
LZ4 38.173 ms baseline 7.3004 µs 10.735 µs 21.59 MiB
zstd3 57.790 ms +51.4% 6.2460 µs 9.5323 µs 21.49 MiB

LZ4 HC4 was also evaluated during development: the same write benchmark took 256.31 ms (+571.7% vs LZ4), which motivated dropping it after the real-cache family breakdown showed little total-size benefit.

Native binary size

For Linux x64 GNU, using build-native-release followed by the release pipeline's strip -x:

  • base: 103,140,384 bytes
  • final PR: 103,663,432 bytes
  • delta: +523,048 bytes (+0.507%)

Removing HC4 saved 73,248 installed bytes versus the earlier PR state; replacing bincode framing with the explicit codec byte saved another 18,048 bytes. Together those review simplifications removed 91,296 installed bytes (24,420 gzip bytes) from the earlier branch state.

Vercel Site real application

These measurements were captured before HC4 was removed. The final TaskData-only configuration should give up a small amount of size reduction and improve write CPU; the final small-app A/B above measures that configuration directly.

Size

2.9G canary
2.2G this PR

a 25% savings!!!

Performance

Cold build (n=5), warm build (n=3), medians:

Scenario Metric Canary Compression Δ
Cold wall (s) 71.28 72.86 +2.2%
user (s) 555.21 570.23 +2.7%
sys (s) 94.49 95.00 +0.5%
maxRSS (GB) 17.95 17.98 +0.2%
Warm wall (s) 15.00 15.32 +2.1%
user (s) 7.59 9.98 +31%
sys (s) 12.79 12.87 +0.6%
maxRSS (GB) 3.78 3.86 +2.0%

maxRSS converted at 1 GB = 2^30 bytes.

Looking at tracing data i see in a cold build persist span went from 5.06s duration using 63s cpu time to 6.04s using 73s cpu time, a ~20% regression. Which explains the cpu regression and the time progression.

Because the time regression is in the persist span during shutdown the added latency is somewhat hidden.

Of course we also see a small wall/user time regression in warm builds due to the extra decompression costs for zstd.

Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Tests Passed

Commit: c55ba19

@github-actions

github-actions Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Stats from current PR

🔴 3 regressions, 4 improvements

Metric Canary PR Change Trend
Turbo Build Time 5.663s 6.477s 🔴 +814ms (+14%) ▁▁▂██
Turbo Build Time (cached) 2.946s 3.123s 🔴 +177ms (+6%) ▁▁▁██
Webpack Build Time 24.030s 24.641s 🔴 +611ms (+3%) ▁▂▁█▁
node_modules Size 558 MB 558 MB 🟢 282 kB (0%) █████
Webpack Build Time (cached) 24.778s 23.956s 🟢 822ms (-3%) ▁▂▁█▁
Webpack Cold (First Request) 3.517s 3.410s 🟢 107ms (-3%) ▁▂▁█▁
Webpack Warm (First Request) 3.636s 3.356s 🟢 280ms (-8%) ▁▂▁█▁
📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 813ms 813ms ▂▂▂██
Cold (Ready in log) 796ms 806ms ▁▁▁██
Cold (First Request) 1.254s 1.305s ▁▁▁██
Warm (Listen) 814ms 812ms ▁▂▂██
Warm (Ready in log) 808ms 798ms ▁▁▁██
Warm (First Request) 1.311s 1.258s ▁▁▁██
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 823ms 812ms ▁▁▁█▁
Cold (Ready in log) 824ms 796ms ▁▂▁█▁
Cold (First Request) 3.517s 3.410s 🟢 107ms (-3%) ▁▂▁█▁
Warm (Listen) 866ms 813ms ▁▁▁▇▁
Warm (Ready in log) 851ms 796ms ▁▂▁█▁
Warm (First Request) 3.636s 3.356s 🟢 280ms (-8%) ▁▂▁█▁

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 5.663s 6.477s 🔴 +814ms (+14%) ▁▁▂██
Cached Build 2.946s 3.123s 🔴 +177ms (+6%) ▁▁▁██
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 24.030s 24.641s 🔴 +611ms (+3%) ▁▂▁█▁
Cached Build 24.778s 23.956s 🟢 822ms (-3%) ▁▂▁█▁
node_modules Size 558 MB 558 MB 🟢 282 kB (0%) █████
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
017_4moyv5m34.js gzip 117 B 117 B
05jocc85-b73_.js gzip 341 B N/A -
0cz1d0mv5g_q7.js gzip 39.4 kB 39.4 kB
0e5lgz-xcf6ln.js gzip 273 B 273 B
0enhddgqs2dl-.js gzip 265 B 265 B
0h34mejwa_7pd.js gzip 354 B 354 B
0w853zxni3ro0.js gzip 1.36 kB N/A -
13lq2aw3_0bgw.js gzip 3.52 kB N/A -
19ll0d77yn0fq.js gzip 71.5 kB N/A -
1drifx6-oqf3q.js gzip 5.7 kB N/A -
1elt1qium-r2m.css gzip 115 B 115 B
1m5vdnlf0deiv.js gzip 411 B 411 B
1nigpy_mr0xvj.js gzip 339 B N/A -
1p0l8mn2wz5f2.js gzip 1.97 kB N/A -
1ph_nbsm967ot.js gzip 152 B N/A -
1sqoyy39jpgkq.js gzip 121 B 121 B
1tf1phijqlx9j.js gzip 220 B 220 B
2-54v5vj7orwp.js gzip 46.8 kB N/A -
2b05_424u1zq-.js gzip 120 B N/A -
2ca40xittx95r.js gzip 8.75 kB N/A -
2kci0vnt-49o-.js gzip 113 B 113 B
2rtriq9lc6zj-.js gzip 116 B N/A -
2sxgl_rcrrn_p.js gzip 399 B N/A -
2vt62i17bhbdu.js gzip 2.35 kB N/A -
33ykhou7tl-4h.js gzip 7.53 kB N/A -
342di-crrg9kq.js gzip 119 B N/A -
36hfc2_979aw2.js gzip 119 B N/A -
38wfp6jjrrdfm.js gzip 131 B 131 B
3dl1ilk37-30g.js gzip 117 B N/A -
3h0us7yy7bd_o.js gzip 13.1 kB N/A -
3kvxagoobts7h.js gzip 117 B N/A -
3p99hd9vwe6ae.js gzip 13 kB N/A -
3r0475panhk6m.js gzip 123 B N/A -
3s0i-weykgzrt.js gzip 125 B N/A -
3vjosdbddykpw.js gzip 5.88 kB N/A -
3wijk2ywqgsv9.js gzip 2.52 kB N/A -
3xuguv9lsoqw7.js gzip 65.5 kB N/A -
41u5s3oe2-erp.js gzip 2.29 kB N/A -
turbopack-0d..9ejy.js gzip 3.74 kB 3.74 kB
02zc7sqlpqxn3.js gzip N/A 119 B -
0jwho9fkrb_t3.js gzip N/A 2.29 kB -
0longconn5mlm.js gzip N/A 123 B -
0p4l3ozbez2cz.js gzip N/A 2.35 kB -
0skdm-9rpid8g.js gzip N/A 117 B -
0wslrlyk8d3lb.js gzip N/A 117 B -
0wv-h56sz83wn.js gzip N/A 120 B -
137xup2t69ovc.js gzip N/A 1.97 kB -
1fk10s3m1oecx.js gzip N/A 400 B -
1g60xde_dv17t.js gzip N/A 8.79 kB -
1uzv47btzam64.js gzip N/A 5.73 kB -
20qhkyyj2_tla.js gzip N/A 116 B -
2imyufe18bsb7.js gzip N/A 1.36 kB -
2mr-6hunyw7uo.js gzip N/A 7.53 kB -
2nsrcvgnlgkby.js gzip N/A 3.56 kB -
2p4n3-8-xixh_.js gzip N/A 341 B -
34knadd6wu9qg.js gzip N/A 119 B -
39jq2b6t6z6up.js gzip N/A 339 B -
3a9a9tvkag_-j.js gzip N/A 2.52 kB -
3b4-wgmojlaav.js gzip N/A 71.7 kB -
3be8e3ccm9e51.js gzip N/A 5.91 kB -
3nhnanx_3z6fp.js gzip N/A 65.6 kB -
3skgwg3_u6i_e.js gzip N/A 13.2 kB -
3t121tj-h0kbm.js gzip N/A 125 B -
3tt4y5c9oeg16.js gzip N/A 47 kB -
3wjy00evyxo9u.js gzip N/A 152 B -
3y9tus7kb5su0.js gzip N/A 13.3 kB -
Total 299 kB 300 kB ⚠️ +962 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 1.02 kB 1.02 kB
Total 1.02 kB 1.02 kB ✅ -1 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 846 B 848 B
Total 846 B 848 B ⚠️ +2 B
Build Cache
Canary PR Change
00000001.sst gzip 12 MB 12.3 MB 🔴 +238 kB (+2%)
00000002.sst gzip 13.7 MB 14.8 MB 🔴 +1.02 MB (+7%)
00000003.sst gzip 14.9 MB 16 MB 🔴 +1.05 MB (+7%)
00000004.sst gzip 14.1 MB 12.2 MB 🟢 1.89 MB (-13%)
00000005.sst gzip 2.75 MB 10.2 MB 🔴 +7.42 MB (+270%)
00000006.sst gzip 10.1 MB 2.8 MB 🟢 7.29 MB (-72%)
00000007.sst gzip 59 B 59 B
00000008.meta gzip 89 B 89 B
00000009.meta gzip 297 kB 298 kB
00000010.meta gzip 297 kB 298 kB
00000011.meta gzip 297 kB 298 kB
00000012.sst gzip 52.8 kB 53.6 kB 🔴 +799 B (+2%)
00000013.sst gzip 1.75 MB 1.88 MB 🔴 +129 kB (+7%)
00000014.sst gzip 59 B 59 B
00000015.meta gzip 116 B 116 B
00000016.meta gzip 327 kB 328 kB
00000017.meta gzip 403 kB 408 kB 🔴 +4.52 kB (+1%)
00000018.sst gzip 53.3 kB 54.4 kB 🔴 +1.11 kB (+2%)
00000019.sst gzip 1.38 MB 1.39 MB 🔴 +15.9 kB (+1%)
00000020.sst gzip 59 B 59 B
00000021.meta gzip 116 B 116 B
00000022.meta gzip 327 kB 328 kB
00000023.meta gzip 372 kB 374 kB
00000024.sst gzip 53.5 kB 54.4 kB 🔴 +961 B (+2%)
00000025.sst gzip 1.38 MB 1.39 MB 🔴 +18.2 kB (+1%)
00000026.sst gzip 59 B 59 B
00000027.meta gzip 116 B 116 B
00000028.meta gzip 327 kB 328 kB
00000029.meta gzip 372 kB 374 kB
00000030.sst gzip 52.9 kB 1.39 MB 🔴 +1.34 MB (+2532%)
00000031.sst gzip 1.38 MB 53.6 kB 🟢 1.32 MB (-96%)
00000032.sst gzip 59 B 59 B
00000033.meta gzip 116 B 116 B
00000034.meta gzip 327 kB 328 kB
00000035.meta gzip 372 kB 374 kB
00000036.sst gzip 53.3 kB 54.4 kB 🔴 +1.13 kB (+2%)
00000037.sst gzip 1.38 MB 1.39 MB 🔴 +18.2 kB (+1%)
00000038.sst gzip 59 B 59 B
00000039.meta gzip 116 B 116 B
00000040.meta gzip 327 kB 328 kB
00000041.meta gzip 372 kB 374 kB
CURRENT gzip 94 B 94 B
LOG gzip 669 B 677 B 🔴 +8 B (+1%)
Total 79.6 MB 80.4 MB ⚠️ +762 kB

📦 Webpack

Client

Main Bundles
Canary PR Change
3322-HASH.js gzip 65.7 kB N/A -
4191.HASH.js gzip 169 B N/A -
9784-HASH.js gzip 5.6 kB N/A -
b1ad9f4c-HASH.js gzip 63.5 kB N/A -
framework-HASH.js gzip 59.7 kB 59.7 kB
main-app-HASH.js gzip 253 B 252 B
main-HASH.js gzip 39.8 kB 40.2 kB 🔴 +436 B (+1%)
webpack-HASH.js gzip 1.68 kB 1.68 kB
3577.HASH.js gzip N/A 168 B -
578-HASH.js gzip N/A 66.2 kB -
8590-HASH.js gzip N/A 5.61 kB -
9750-HASH.js gzip N/A 4.68 kB -
a8984546-HASH.js gzip N/A 63.5 kB -
Total 236 kB 242 kB ⚠️ +5.64 kB
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 194 B 193 B
_error-HASH.js gzip 181 B 182 B
css-HASH.js gzip 334 B 331 B
dynamic-HASH.js gzip 1.81 kB 1.81 kB
edge-ssr-HASH.js gzip 255 B 253 B
head-HASH.js gzip 349 B 351 B
hooks-HASH.js gzip 382 B 384 B
image-HASH.js gzip 5.05 kB 582 B 🟢 4.47 kB (-88%)
index-HASH.js gzip 260 B 259 B
link-HASH.js gzip 2.48 kB 2.48 kB
routerDirect..HASH.js gzip 317 B 318 B
script-HASH.js gzip 384 B 386 B
withRouter-HASH.js gzip 316 B 315 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 12.4 kB 7.96 kB ✅ -4.47 kB

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 128 kB 129 kB
page.js gzip 293 kB 294 kB
Total 421 kB 423 kB ⚠️ +1.39 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 599 B 617 B 🔴 +18 B (+3%)
middleware-r..fest.js gzip 156 B 156 B
middleware.js gzip 45.7 kB 45.6 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 47.3 kB 47.2 kB ✅ -98 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 699 B 718 B 🔴 +19 B (+3%)
Total 699 B 718 B ⚠️ +19 B
Build Cache
Canary PR Change
0.pack gzip 4.8 MB 4.82 MB 🔴 +16.3 kB (+0%)
index.pack gzip 123 kB 124 kB
index.pack.old gzip 124 kB 124 kB
Total 5.05 MB 5.07 MB ⚠️ +17.4 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 377 kB 375 kB 🟢 2.2 kB (-1%)
app-page-exp..prod.js gzip 207 kB 207 kB
app-page-tur...dev.js gzip 377 kB 375 kB 🟢 2.21 kB (-1%)
app-page-tur..prod.js gzip 207 kB 207 kB
app-page-tur...dev.js gzip 373 kB 371 kB 🟢 2.25 kB (-1%)
app-page-tur..prod.js gzip 205 kB 204 kB
app-page.run...dev.js gzip 373 kB 371 kB 🟢 2.26 kB (-1%)
app-page.run..prod.js gzip 205 kB 205 kB
app-route-ex...dev.js gzip 82.9 kB 83.3 kB
app-route-ex..prod.js gzip 55.8 kB 56.3 kB
app-route-tu...dev.js gzip 82.9 kB 83.4 kB
app-route-tu..prod.js gzip 55.9 kB 56.3 kB
app-route-tu...dev.js gzip 82.5 kB 82.9 kB
app-route-tu..prod.js gzip 55.6 kB 56.1 kB
app-route.ru...dev.js gzip 82.4 kB 82.9 kB
app-route.ru..prod.js gzip 55.6 kB 56.1 kB
dev-validati...dev.js gzip 139 kB 134 kB 🟢 4.84 kB (-3%)
dev-validati...dev.js gzip 139 kB 134 kB 🟢 4.84 kB (-3%)
dev-validati...dev.js gzip 137 kB 132 kB 🟢 4.89 kB (-4%)
dev-validati...dev.js gzip 137 kB 132 kB 🟢 4.88 kB (-4%)
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 46.3 kB 46.5 kB
pages-api-tu..prod.js gzip 34.3 kB 34.7 kB 🔴 +352 B (+1%)
pages-api.ru...dev.js gzip 46.2 kB 46.5 kB
pages-api.ru..prod.js gzip 34.3 kB 34.6 kB 🔴 +347 B (+1%)
pages-turbo....dev.js gzip 54.7 kB 55.3 kB 🔴 +614 B (+1%)
pages-turbo...prod.js gzip 39.7 kB 40.2 kB 🔴 +538 B (+1%)
pages.runtim...dev.js gzip 54.7 kB 55.3 kB 🔴 +592 B (+1%)
pages.runtim..prod.js gzip 39.6 kB 40.2 kB 🔴 +537 B (+1%)
server.runti..prod.js gzip 66 kB 66.7 kB
use-cache-pr...dev.js gzip 73.4 kB 72.8 kB
use-cache-pr...dev.js gzip 73.4 kB 72.8 kB
use-cache-pr...dev.js gzip 71.7 kB 71 kB
use-cache-pr...dev.js gzip 71.6 kB 71 kB
Total 4.14 MB 4.11 MB ✅ -24.6 kB
📝 Changed Files (33 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
  • app-route-ex..ntime.dev.js
  • app-route-ex..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route-tu..ntime.dev.js
  • app-route-tu..time.prod.js
  • app-route.runtime.dev.js
  • app-route.ru..time.prod.js
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • dev-validati..ntime.dev.js
  • ... and 13 more
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js
failed to diff
app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js
failed to diff
app-page.runtime.dev.js
failed to diff
app-page.runtime.prod.js
failed to diff
app-route-ex..ntime.dev.js

Diff too large to display

app-route-ex..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route-tu..ntime.dev.js

Diff too large to display

app-route-tu..time.prod.js

Diff too large to display

app-route.runtime.dev.js

Diff too large to display

app-route.ru..time.prod.js

Diff too large to display

dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
dev-validati..ntime.dev.js
failed to diff
pages-api-tu..ntime.dev.js

Diff too large to display

pages-api-tu..time.prod.js

Diff too large to display

pages-api.runtime.dev.js

Diff too large to display

pages-api.ru..time.prod.js

Diff too large to display

pages-turbo...ntime.dev.js

Diff too large to display

pages-turbo...time.prod.js

Diff too large to display

pages.runtime.dev.js

Diff too large to display

pages.runtime.prod.js

Diff too large to display

server.runtime.prod.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

use-cache-pr..ntime.dev.js

Diff too large to display

📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/fb436e28cbf2ba40aead5da822f6236b185fb839/next

Commit: fb436e2

@datadog-official

This comment has been minimized.

Comment thread turbopack/crates/turbo-persistence/src/bin/sst_inspect.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
dianatofficial

This comment was marked as spam.

Comment thread turbopack/crates/turbo-persistence/benches/mod.rs Outdated
Comment thread turbopack/crates/turbo-persistence/benches/mod.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
@sokra

sokra commented Aug 25, 2026

Copy link
Copy Markdown
Member

Does that have an impact on binary size of the released *.node file, fleet?

@vercel-fleet-prod

Copy link
Copy Markdown
Contributor

Measured on the released Linux x64 GNU artifact path (build-native-release, then the release workflow’s strip -x): +614,344 bytes (+0.596%) installed, from 103,140,384 B to 103,754,728 B. Gzip-9 is +238,790 B (+0.698%) as a transfer-size proxy.

The increase is mostly .text (+563,968 B); the PR adds zstd compression paths, while the base already has some zstd code. This is one target only — other native targets may differ.

The PR stats node_modules change (+940 kB) is directionally consistent but covers more than the .node artifact.

@lukesandberg
lukesandberg marked this pull request as ready for review August 26, 2026 01:10
@lukesandberg
lukesandberg requested a review from bgw August 26, 2026 01:10
@lukesandberg
lukesandberg marked this pull request as draft August 26, 2026 01:10
@lukesandberg
lukesandberg marked this pull request as ready for review August 26, 2026 19:59
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/meta_file.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/meta_file_builder.rs Outdated
Comment thread turbopack/crates/turbo-persistence/README.md Outdated
Comment thread turbopack/crates/turbo-persistence/README.md Outdated
Comment thread turbopack/crates/turbo-persistence/README.md Outdated
Comment thread turbopack/crates/turbo-persistence/README.md Outdated
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
@lukesandberg
lukesandberg enabled auto-merge (squash) August 27, 2026 00:03
Comment thread turbopack/crates/turbo-persistence/src/static_sorted_file.rs Outdated
vercel-fleet-prod Bot and others added 2 commits August 28, 2026 01:39
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/meta_file.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/meta_file_builder.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/static_sorted_file.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/static_sorted_file.rs
Comment thread turbopack/crates/turbo-persistence/src/tests.rs Outdated
Comment thread turbopack/crates/turbo-persistence/Cargo.toml Outdated
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
@lukesandberg
lukesandberg requested a review from bgw September 2, 2026 02:20
Comment thread turbopack/crates/turbo-persistence/src/static_sorted_file_builder.rs Outdated
Comment thread turbopack/crates/turbo-persistence/src/static_sorted_file_builder.rs Outdated
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
Comment thread turbopack/crates/turbo-persistence/src/compression.rs Outdated
vercel-fleet-prod Bot and others added 2 commits September 2, 2026 06:32
Co-authored-by: Luke Sandberg <210140+lukesandberg@users.noreply.github.com>
@vercel

vercel Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
next-issue-60477-default Error Error Sep 2, 2026 7:08pm UTC
next-issue-60477-hybrid Error Error Sep 2, 2026 7:08pm UTC
next-issue-60477-repro Error Error Sep 2, 2026 7:08pm UTC

@lukesandberg
lukesandberg merged commit 5a0f57d into canary Sep 2, 2026
229 of 234 checks passed
@lukesandberg
lukesandberg deleted the codex/turbo-persistence-family-compression branch September 2, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants