diff --git a/Cargo.lock b/Cargo.lock index dfabf8ac4203e..8cfaeed73fdab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -328,19 +328,6 @@ dependencies = [ "syn 2.0.104", ] -[[package]] -name = "async-compression" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" -dependencies = [ - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - [[package]] name = "async-stream" version = "0.3.4" @@ -572,6 +559,24 @@ dependencies = [ "serde", ] +[[package]] +name = "bincode" +version = "2.0.1" +source = "git+https://github.com/bgw/bincode.git?branch=bgw%2Fpatches#19f09c5f6895d769883c10b3d374f761ab7fe83d" +dependencies = [ + "bincode_derive", + "serde", + "unty", +] + +[[package]] +name = "bincode_derive" +version = "2.0.1" +source = "git+https://github.com/bgw/bincode.git?branch=bgw%2Fpatches#19f09c5f6895d769883c10b3d374f761ab7fe83d" +dependencies = [ + "virtue", +] + [[package]] name = "bindgen" version = "0.70.1" @@ -1178,7 +1183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35584c5fcba8059780748866387fb97c5a203bcfc563fc3d0790af406727a117" dependencies = [ "anyhow", - "bincode", + "bincode 1.3.3", "colored", "glob", "libc", @@ -6753,9 +6758,9 @@ checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" [[package]] name = "smallvec" -version = "1.13.1" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" dependencies = [ "serde", ] @@ -9079,6 +9084,20 @@ dependencies = [ "utf-8", ] +[[package]] +name = "turbo-bincode" +version = "0.0.0" +dependencies = [ + "bincode 2.0.1", + "either", + "indexmap 2.9.0", + "mime", + "ringmap", + "serde", + "serde_json", + "smallvec", +] + [[package]] name = "turbo-dyn-eq-hash" version = "0.0.1" @@ -9151,7 +9170,7 @@ dependencies = [ name = "turbo-static" version = "0.1.0" dependencies = [ - "bincode", + "bincode 1.3.3", "clap", "ctrlc", "ignore", @@ -9662,8 +9681,8 @@ name = "turbopack-dev-server" version = "0.1.0" dependencies = [ "anyhow", - "async-compression", "auto-hash-map", + "flate2", "futures", "hyper 0.14.32", "hyper-tungstenite", @@ -10237,6 +10256,12 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" +[[package]] +name = "unty" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" + [[package]] name = "url" version = "2.5.4" @@ -10419,7 +10444,7 @@ dependencies = [ "anyhow", "async-trait", "base64 0.22.1", - "bincode", + "bincode 1.3.3", "bytecheck 0.6.11", "bytes", "derive_more 2.0.1", @@ -10436,6 +10461,12 @@ dependencies = [ "virtual-mio", ] +[[package]] +name = "virtue" +version = "0.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" + [[package]] name = "vlq" version = "0.5.1" @@ -10806,7 +10837,7 @@ dependencies = [ "anyhow", "async-trait", "base64 0.22.1", - "bincode", + "bincode 1.3.3", "bytecheck 0.6.11", "bytes", "derive_more 2.0.1", @@ -10912,7 +10943,7 @@ dependencies = [ "anyhow", "async-trait", "base64 0.22.1", - "bincode", + "bincode 1.3.3", "blake3", "bus", "bytecheck 0.6.11", diff --git a/Cargo.toml b/Cargo.toml index 84f520685ad34..aa08933e9e5d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -293,6 +293,7 @@ next-taskless = { path = "crates/next-taskless" } # Turbopack auto-hash-map = { path = "turbopack/crates/turbo-tasks-auto-hash-map" } +turbo-bincode = { path = "turbopack/crates/turbo-bincode" } turbo-prehash = { path = "turbopack/crates/turbo-prehash" } turbo-rcstr = { path = "turbopack/crates/turbo-rcstr" } turbo-dyn-eq-hash = { path = "turbopack/crates/turbo-dyn-eq-hash" } @@ -359,6 +360,7 @@ preset_env_base = "6.0.0" # General Deps +bincode = { version = "2.0.1", features = ["serde"] } chromiumoxide = { version = "0.5.4", features = [ "tokio-runtime", ], default-features = false } @@ -371,10 +373,6 @@ allsorts = { version = "0.14.0", default-features = false, features = [ "flate2_rust", ] } anyhow = "1.0.100" -async-compression = { version = "0.3.13", default-features = false, features = [ - "gzip", - "tokio", -] } async-trait = "0.1.64" bitfield = "0.18.0" byteorder = "1.5.0" @@ -481,4 +479,5 @@ webbrowser = "1.0.6" inventory = "0.3.21" [patch.crates-io] +bincode = { git = "https://github.com/bgw/bincode.git", branch = "bgw/patches" } mdxjs = { git = "https://github.com/mischnic/mdxjs-rs.git", branch = "swc-core-32" } diff --git a/apps/bundle-analyzer/package.json b/apps/bundle-analyzer/package.json index 1a6b1e675d08b..db5a679907771 100644 --- a/apps/bundle-analyzer/package.json +++ b/apps/bundle-analyzer/package.json @@ -18,7 +18,7 @@ "clsx": "^2.1.1", "cmdk": "1.0.4", "lucide-react": "^0.554.0", - "next": "16.0.1", + "next": "16.0.7", "next-themes": "^0.4.6", "polished": "^4.3.1", "react": "19.2.0", diff --git a/apps/docs/package.json b/apps/docs/package.json index a93df5d7f18cd..b46a5bd5c87c0 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -12,7 +12,7 @@ "fumadocs-core": "15.7.12", "fumadocs-mdx": "11.10.0", "fumadocs-ui": "15.7.12", - "next": "15.5.3", + "next": "15.5.7", "react": "19.1.1", "react-dom": "19.1.1" }, diff --git a/docs/01-app/01-getting-started/17-deploying.mdx b/docs/01-app/01-getting-started/17-deploying.mdx index e0f65d31ca8b8..cf6f7b88a9bd5 100644 --- a/docs/01-app/01-getting-started/17-deploying.mdx +++ b/docs/01-app/01-getting-started/17-deploying.mdx @@ -76,6 +76,7 @@ Refer to each provider's documentation for information on supported Next.js feat - [AWS Amplify Hosting](https://docs.amplify.aws/nextjs/start/quickstart/nextjs-app-router-client-components) - [Cloudflare](https://developers.cloudflare.com/workers/frameworks/framework-guides/nextjs) - [Deno Deploy](https://docs.deno.com/examples/next_tutorial) +- [Firebase App Hosting](https://firebase.google.com/docs/app-hosting/get-started) - [Netlify](https://docs.netlify.com/frameworks/next-js/overview/#next-js-support-on-netlify) - [Vercel](https://vercel.com/docs/frameworks/nextjs) diff --git a/docs/01-app/02-guides/data-security.mdx b/docs/01-app/02-guides/data-security.mdx index db656cf0e3152..2c12d4354a4dc 100644 --- a/docs/01-app/02-guides/data-security.mdx +++ b/docs/01-app/02-guides/data-security.mdx @@ -397,14 +397,12 @@ However, for this to happen, the captured variables are sent to the client and b ### Overwriting encryption keys (advanced) -When self-hosting your Next.js application across multiple servers, each server instance may end up with a different encryption key, leading to potential inconsistencies. +When **self-hosting** your Next.js application across multiple servers, each server instance may end up with a different encryption key, leading to potential inconsistencies. To mitigate this, you can overwrite the encryption key using the `process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY` environment variable. Specifying this variable ensures that your encryption keys are persistent across builds, and all server instances use the same key. This variable **must** be AES-GCM encrypted. This is an advanced use case where consistent encryption behavior across multiple deployments is critical for your application. You should consider standard security practices such key rotation and signing. -> **Good to know:** Next.js applications deployed to Vercel automatically handle this. - ### Allowed origins (advanced) Since Server Actions can be invoked in a `