diff --git a/Cargo.lock b/Cargo.lock index dfabf8ac4203e7..8cfaeed73fdab1 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 84f520685ad341..aa08933e9e5d7d 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 1a6b1e675d08b9..db5a679907771c 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 a93df5d7f18cdf..b46a5bd5c87c07 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 e0f65d31ca8b86..cf6f7b88a9bd51 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 db656cf0e31526..2c12d4354a4dc9 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 `