-
Notifications
You must be signed in to change notification settings - Fork 27k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(next-server): implement brotli compression #19151
Conversation
I've tested this using several of the example repos and they all seem to work but I am unable to get the test suite to work locally. Tests are failing with some jest timers issue?:
|
Failing test suitesCommit: 2d68265 test/unit/next-server-compress.unit.test.js Expand output● Test suite failed to run
|
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 16s | 15.6s | -381ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.949 | 2.921 | -0.03 |
/ avg req/sec | 847.84 | 855.82 | +7.98 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.817 | 1.777 | -0.04 |
/error-in-render avg req/sec | 1375.72 | 1406.87 | +31.15 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 17.6s | 18.7s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Failing test suitesCommit: 2f962ec test/unit/next-server-compress.unit.test.js Expand output● Test suite failed to run
|
Stats from current PRDefault Server Mode (Decrease detected ✓)General Overall increase
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 12.4s | 12.1s | -324ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.257 | 2.396 | |
/ avg req/sec | 1107.78 | 1043.44 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.223 | 1.331 | |
/error-in-render avg req/sec | 2044.97 | 1878.14 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 13.8s | 14.7s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Failing test suitesCommit: c017c4f test/unit/next-server-compress.unit.test.js Expand output● Test suite failed to run
|
Stats from current PRDefault Server Mode (Decrease detected ✓)General Overall increase
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 13.7s | 13.2s | -507ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.391 | 2.44 | |
/ avg req/sec | 1045.76 | 1024.76 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.255 | 1.291 | |
/error-in-render avg req/sec | 1992.24 | 1935.96 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 15.2s | 15.2s | -21ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Failing test suitesCommit: e202de7 test/unit/next-server-compress.unit.test.js Expand output● Test suite failed to run
|
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 12.5s | 12.1s | -410ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.382 | 2.369 | -0.01 |
/ avg req/sec | 1049.37 | 1055.2 | +5.83 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.413 | 1.372 | -0.04 |
/error-in-render avg req/sec | 1769.22 | 1821.8 | +52.58 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 14.6s | 14.4s | -142ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Failing test suitesCommit: d9fc2e2 test/unit/next-server-compress.unit.test.js Expand output● Test suite failed to run
|
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 12s | 12s | -51ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.103 | 2.215 | |
/ avg req/sec | 1188.86 | 1128.48 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.211 | 1.134 | -0.08 |
/error-in-render avg req/sec | 2063.78 | 2205.45 | +141.67 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 13.5s | 13.1s | -398ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 13.3s | 13.2s | -92ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.413 | 2.377 | -0.04 |
/ avg req/sec | 1036.14 | 1051.57 | +15.43 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.259 | 1.253 | -0.01 |
/error-in-render avg req/sec | 1986.08 | 1994.46 | +8.38 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 15.1s | 15.1s | -68ms |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Stats from current PRDefault Server Mode (Decrease detected ✓)General Overall increase
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 10s | 10.2s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall decrease ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.876 | 1.882 | |
/ avg req/sec | 1332.73 | 1328.1 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 0.991 | 1.019 | |
/error-in-render avg req/sec | 2522.39 | 2454.45 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 11.3s | 11.7s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
6454c11
to
5bfb771
Compare
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 12.1s | 12.2s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.263 | 2.281 | |
/ avg req/sec | 1104.61 | 1096.01 | |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.221 | 1.204 | -0.02 |
/error-in-render avg req/sec | 2047.61 | 2077.11 | +29.5 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 971 B | 971 B | ✓ |
link.html gzip | 978 B | 978 B | ✓ |
withRouter.html gzip | 965 B | 965 B | ✓ |
Overall change | 2.91 kB | 2.91 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 13.7s | 14.1s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..d9fb.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-b0b971f..64a5.js gzip | 6.5 kB | 6.5 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.23 kB | 8.23 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-22cb0cf..dule.js gzip | 5.61 kB | 5.61 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 916 kB | 916 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 916 kB | 916 kB | ✓ |
link.js | 974 kB | 974 kB | ✓ |
routerDirect.js | 967 kB | 967 kB | ✓ |
withRouter.js | 967 kB | 967 kB | ✓ |
Overall change | 4.75 MB | 4.75 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 14.3s | 14.3s | -73ms |
nodeModulesSize | 85 MB | 86 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.578 | 2.498 | -0.08 |
/ avg req/sec | 969.9 | 1000.76 | +30.86 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.399 | 1.341 | -0.06 |
/error-in-render avg req/sec | 1786.92 | 1863.83 | +76.91 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..776c.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-95c0df2..6c91.js gzip | 6.53 kB | 6.53 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.26 kB | 8.26 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-8ead8dd..dule.js gzip | 5.64 kB | 5.64 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 968 B | 968 B | ✓ |
link.html gzip | 974 B | 974 B | ✓ |
withRouter.html gzip | 961 B | 961 B | ✓ |
Overall change | 2.9 kB | 2.9 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 16.2s | 17s | |
nodeModulesSize | 85 MB | 86 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..776c.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-95c0df2..6c91.js gzip | 6.53 kB | 6.53 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.26 kB | 8.26 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-8ead8dd..dule.js gzip | 5.64 kB | 5.64 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 918 kB | 918 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 918 kB | 918 kB | ✓ |
link.js | 976 kB | 976 kB | ✓ |
routerDirect.js | 969 kB | 969 kB | ✓ |
withRouter.js | 969 kB | 969 kB | ✓ |
Overall change | 4.76 MB | 4.76 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 10.5s | 10.4s | -134ms |
nodeModulesSize | 85 MB | 86 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.958 | 1.944 | -0.01 |
/ avg req/sec | 1276.99 | 1285.89 | +8.9 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.075 | 1.021 | -0.05 |
/error-in-render avg req/sec | 2325.49 | 2447.79 | +122.3 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..776c.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-95c0df2..6c91.js gzip | 6.53 kB | 6.53 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.26 kB | 8.26 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-8ead8dd..dule.js gzip | 5.64 kB | 5.64 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 968 B | 968 B | ✓ |
link.html gzip | 974 B | 974 B | ✓ |
withRouter.html gzip | 961 B | 961 B | ✓ |
Overall change | 2.9 kB | 2.9 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 11.8s | 11.7s | -100ms |
nodeModulesSize | 85 MB | 86 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..776c.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-95c0df2..6c91.js gzip | 6.53 kB | 6.53 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Client Bundles (main, webpack, commons) Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..dule.js gzip | 8.26 kB | 8.26 kB | ✓ |
framework.HA..dule.js gzip | 39 kB | 39 kB | ✓ |
main-8ead8dd..dule.js gzip | 5.64 kB | 5.64 kB | ✓ |
webpack-07c5..dule.js gzip | 751 B | 751 B | ✓ |
Overall change | 53.6 kB | 53.6 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-d9a15a0..130a.js gzip | 1.57 kB | 1.57 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 7.98 kB | 7.98 kB | ✓ |
Client Pages Modern
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-75d3a82..dule.js gzip | 625 B | 625 B | ✓ |
_error-f2fcc..dule.js gzip | 2.29 kB | 2.29 kB | ✓ |
hooks-cbf13f..dule.js gzip | 387 B | 387 B | ✓ |
index-b9a643..dule.js gzip | 226 B | 226 B | ✓ |
link-973cce3..dule.js gzip | 1.51 kB | 1.51 kB | ✓ |
routerDirect..dule.js gzip | 284 B | 284 B | ✓ |
withRouter-f..dule.js gzip | 282 B | 282 B | ✓ |
Overall change | 5.6 kB | 5.6 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
_buildManife..dule.js gzip | 330 B | 330 B | ✓ |
Overall change | 651 B | 651 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 918 kB | 918 kB | ✓ |
404.html | 4.61 kB | 4.61 kB | ✓ |
hooks.html | 3.86 kB | 3.86 kB | ✓ |
index.js | 918 kB | 918 kB | ✓ |
link.js | 976 kB | 976 kB | ✓ |
routerDirect.js | 969 kB | 969 kB | ✓ |
withRouter.js | 969 kB | 969 kB | ✓ |
Overall change | 4.76 MB | 4.76 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 10.2s | 10.5s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 2.314 | 2.298 | -0.02 |
/ avg req/sec | 1080.36 | 1087.71 | +7.35 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.381 | 1.38 | 0 |
/error-in-render avg req/sec | 1810.21 | 1810.95 | +0.74 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..4972.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-f1a49fb..e45e.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-b618194..5477.js gzip | 1.61 kB | 1.61 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 8.01 kB | 8.01 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
Overall change | 321 B | 321 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 613 B | 613 B | ✓ |
link.html gzip | 621 B | 621 B | ✓ |
withRouter.html gzip | 608 B | 608 B | ✓ |
Overall change | 1.84 kB | 1.84 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 12s | 12s | |
nodeModulesSize | 84.9 MB | 85.9 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..4972.js gzip | 12.7 kB | 12.7 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-f1a49fb..e45e.js gzip | 6.52 kB | 6.52 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 58.9 kB | 58.9 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-3b0cf13..85f8.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-6f635..c393.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4ffc3..9e0f.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-b618194..5477.js gzip | 1.61 kB | 1.61 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 8.01 kB | 8.01 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
Overall change | 321 B | 321 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 914 kB | 914 kB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 915 kB | 915 kB | ✓ |
link.js | 973 kB | 973 kB | ✓ |
routerDirect.js | 966 kB | 966 kB | ✓ |
withRouter.js | 966 kB | 966 kB | ✓ |
Overall change | 4.74 MB | 4.74 MB | ✓ |
Stats from current PRDefault Server Mode (Increase detected
|
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 8.2s | 8.3s | |
nodeModulesSize | 82.4 MB | 82.6 MB |
Page Load Tests Overall increase ✓
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
/ failed reqs | 0 | 0 | ✓ |
/ total time (seconds) | 1.69 | 1.653 | -0.04 |
/ avg req/sec | 1479.5 | 1512.13 | +32.63 |
/error-in-render failed reqs | 0 | 0 | ✓ |
/error-in-render total time (seconds) | 1.068 | 1.052 | -0.02 |
/error-in-render avg req/sec | 2339.75 | 2375.83 | +36.08 |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..8b6e.js gzip | 12.8 kB | 12.8 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-3c9ff84..1d7c.js gzip | 6.56 kB | 6.56 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 59 kB | 59 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-7231d4b..5856.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fca3d..2eb1.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4591d..e7c2.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-db223d9..dbd7.js gzip | 1.61 kB | 1.61 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 8.01 kB | 8.01 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
Overall change | 321 B | 321 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
index.html gzip | 614 B | 614 B | ✓ |
link.html gzip | 620 B | 620 B | ✓ |
withRouter.html gzip | 608 B | 608 B | ✓ |
Overall change | 1.84 kB | 1.84 kB | ✓ |
Serverless Mode
General Overall increase ⚠️
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
buildDuration | 10.1s | 9.8s | -300ms |
nodeModulesSize | 82.4 MB | 82.6 MB |
Client Bundles (main, webpack, commons)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
677f882d2ed8..8b6e.js gzip | 12.8 kB | 12.8 kB | ✓ |
framework.HASH.js gzip | 39 kB | 39 kB | ✓ |
main-3c9ff84..1d7c.js gzip | 6.56 kB | 6.56 kB | ✓ |
webpack-e067..f178.js gzip | 751 B | 751 B | ✓ |
Overall change | 59 kB | 59 kB | ✓ |
Legacy Client Bundles (polyfills)
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
polyfills-4b..e242.js gzip | 31 kB | 31 kB | ✓ |
Overall change | 31 kB | 31 kB | ✓ |
Client Pages
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_app-7231d4b..5856.js gzip | 1.28 kB | 1.28 kB | ✓ |
_error-fca3d..2eb1.js gzip | 3.44 kB | 3.44 kB | ✓ |
hooks-d4591d..e7c2.js gzip | 887 B | 887 B | ✓ |
index-17468f..5d83.js gzip | 227 B | 227 B | ✓ |
link-db223d9..dbd7.js gzip | 1.61 kB | 1.61 kB | ✓ |
routerDirect..924c.js gzip | 284 B | 284 B | ✓ |
withRouter-7..c13d.js gzip | 284 B | 284 B | ✓ |
Overall change | 8.01 kB | 8.01 kB | ✓ |
Client Build Manifests
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_buildManifest.js gzip | 321 B | 321 B | ✓ |
Overall change | 321 B | 321 B | ✓ |
Serverless bundles
vercel/next.js canary | nicksrandall/next.js brotli-compress | Change | |
---|---|---|---|
_error.js | 997 kB | 997 kB | ✓ |
404.html | 2.67 kB | 2.67 kB | ✓ |
hooks.html | 1.92 kB | 1.92 kB | ✓ |
index.js | 998 kB | 998 kB | ✓ |
link.js | 1.05 MB | 1.05 MB | ✓ |
routerDirect.js | 1.04 MB | 1.04 MB | ✓ |
withRouter.js | 1.04 MB | 1.04 MB | ✓ |
Overall change | 5.14 MB | 5.14 MB | ✓ |
@Timer @chibicode @lfades Anything I can do to help with the review of this work? |
@Timer @chibicode @lfades It's been a few months. Anything I can do to help with the review of this work? |
Hi, sorry for the delay here, if there's still interest in landing this feel free to bring this up to date and we can get it reviewed! |
df8579c
to
47e5ebe
Compare
e078ebe
to
6b863fe
Compare
Anything i can help with regards to this PR :) ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Going to close this as stale, feel free to re-open if able to revive this!
This is is a follow up to #17766. I'm new this repo so I need some help on figuring out how to run the tests and make sure that everything is working. Any guidance on how I should proceed would be very helpful.
Background
TL;DR
Next.js uses
expressjs/compression
to handle gzip compression for its HTTP server.There has been several attempts (172, 173, 158) to add brotli compression support to that library and so far none have been successfully merged (for various reasons). One of the largest reasons why this has been a challenge is because that library requires that any code is supported all the way down to Node 0.8. Also, it uses the
accepts
npm package which (although it is spec compliant) does not generally do what users actually want with regard to how it determines which compression encoding to use.I have re-written the
expressjs/compression
library in typescript and swapped out theaccetps
library for@hapi/accepts
which handles this issue in a more preferred way. I've also extended the library to add support for brotli compression (all of this has been added to thenext-server
codebase.What is the problem that is trying to be solved?
The brotli compression algorithm is generally more efficient than gzip and now supported in recent versions of Node.js and in all major browsers. Http clients (like web browsers) can specify an "Accept-Encoding" header in their requests to share which compression algorithms they support and prefer. According to the spec, when two values have the same preference, the first value will be used (seems reasonable right?).
However, many browsers (including Google Chrome) send the "br" (brotli) value last even though it is generally preferred to the other algorithms (ie they send
gzip, deflate, br
instead ofbr, gzip, deflate
). This causes the brotli compression algorithm to be de-prioritized and unused.What can we do about it?
We can follow a well-established convention to deviate from the spec slightly and force the server to choose the "preferred" compression algorithm when the client has (basically) stated that it doesn't not explicitly prefer one algorithm over another.
So, for example, if we get an "Accept-Encoding" header value of
gzip, deflate, br
we will usebr
(brotli) because brotli is more efficient over gzip and their preference (set by client) is both 1 (the default value).However, if we get
gzip;q=0.8, br;q=0.1
(q is level of preference from 0 to 1 where 1 is most preferred) we will use 'gzip' because the client has explicitly stated that it is more preferred than brotli.The
@hapi/accepts
library has this behavior by default so I'm using that as part of my compression library.