From 1cff7204589432e5d0bc0b3c6b3f153a25e01a4b Mon Sep 17 00:00:00 2001 From: Artyom Sovetnikov <2056864+Elringus@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:19:00 +0300 Subject: [PATCH 1/4] upgrade to net 10 --- samples/bench/bootsharp/Boot.csproj | 2 +- samples/bench/dotnet-llvm/DotNetLLVM.csproj | 2 +- samples/bench/dotnet-llvm/init.mjs | 2 +- samples/bench/dotnet-llvm/readme.md | 2 +- samples/bench/dotnet/DotNet.csproj | 3 ++- samples/bench/dotnet/init.mjs | 2 +- samples/bench/dotnet/readme.md | 2 +- samples/bench/readme.md | 8 ++++++++ samples/minimal/cs/Minimal.csproj | 2 +- .../backend/Backend.Prime/Backend.Prime.csproj | 2 +- .../backend/Backend.WASM/Backend.WASM.csproj | 8 ++++---- samples/react/backend/Backend/Backend.csproj | 2 +- samples/trimming/README.md | 9 +++++---- samples/trimming/cs/Trimming.csproj | 2 +- .../Bootsharp.Common.Test.csproj | 12 ++++++------ .../Bootsharp.Common/Bootsharp.Common.csproj | 2 +- .../Bootsharp.Generate.Test.csproj | 16 ++++++++-------- .../Bootsharp.Generate.csproj | 2 +- .../Bootsharp.Inject.Test.csproj | 14 +++++++------- .../Bootsharp.Inject/Bootsharp.Inject.csproj | 4 ++-- .../Bootsharp.Publish.Test.csproj | 18 +++++++++--------- .../Bootsharp.Publish/Bootsharp.Publish.csproj | 8 ++++---- src/cs/Bootsharp/Bootsharp.csproj | 2 +- src/cs/Directory.Build.props | 2 +- src/js/test/cs/Test.Types/Test.Types.csproj | 2 +- src/js/test/cs/Test/Test.csproj | 2 +- 26 files changed, 71 insertions(+), 61 deletions(-) diff --git a/samples/bench/bootsharp/Boot.csproj b/samples/bench/bootsharp/Boot.csproj index 65b46f50..f8f6555c 100644 --- a/samples/bench/bootsharp/Boot.csproj +++ b/samples/bench/bootsharp/Boot.csproj @@ -1,7 +1,7 @@ - net9.0-browser + net10.0 browser-wasm false diff --git a/samples/bench/dotnet-llvm/DotNetLLVM.csproj b/samples/bench/dotnet-llvm/DotNetLLVM.csproj index 3d6d8e21..50f10889 100644 --- a/samples/bench/dotnet-llvm/DotNetLLVM.csproj +++ b/samples/bench/dotnet-llvm/DotNetLLVM.csproj @@ -1,7 +1,7 @@ - net9.0-browser + net10.0 browser-wasm Exe true diff --git a/samples/bench/dotnet-llvm/init.mjs b/samples/bench/dotnet-llvm/init.mjs index 663c1a01..df89438e 100644 --- a/samples/bench/dotnet-llvm/init.mjs +++ b/samples/bench/dotnet-llvm/init.mjs @@ -1,4 +1,4 @@ -import { dotnet } from "./bin/Release/net9.0-browser/browser-wasm/publish/dotnet.js"; +import { dotnet } from "./bin/Release/net10.0/browser-wasm/publish/dotnet.js"; /** @returns {Promise} */ export async function init() { diff --git a/samples/bench/dotnet-llvm/readme.md b/samples/bench/dotnet-llvm/readme.md index f2381942..674fe022 100644 --- a/samples/bench/dotnet-llvm/readme.md +++ b/samples/bench/dotnet-llvm/readme.md @@ -1,6 +1,6 @@ 1. Install .NET https://dotnet.microsoft.com/en-us/download 2. Install Binaryen https://github.com/WebAssembly/binaryen 3. Run `dotnet publish` -4. Run `wasm-opt bin/Release/net9.0-browser/browser-wasm/publish/dotnet.native.wasm -O3 -o bin/Release/net9.0-browser/browser-wasm/publish/dotnet.native.wasm --all-features --strip-dwarf --strip-debug --vacuum` +4. Run `wasm-opt bin/Release/net10.0/browser-wasm/publish/dotnet.native.wasm -O3 -o bin/Release/net10.0/browser-wasm/publish/dotnet.native.wasm --all-features --strip-dwarf --strip-debug --vacuum` https://github.com/dotnet/runtime/issues/113979#issuecomment-2759220563 diff --git a/samples/bench/dotnet/DotNet.csproj b/samples/bench/dotnet/DotNet.csproj index ddbea904..51a0bf6e 100644 --- a/samples/bench/dotnet/DotNet.csproj +++ b/samples/bench/dotnet/DotNet.csproj @@ -1,6 +1,7 @@ - net9.0 + net10.0 + Exe browser-wasm true true diff --git a/samples/bench/dotnet/init.mjs b/samples/bench/dotnet/init.mjs index 026c4863..4aa34554 100644 --- a/samples/bench/dotnet/init.mjs +++ b/samples/bench/dotnet/init.mjs @@ -1,4 +1,4 @@ -import { dotnet } from "./bin/Release/net9.0/browser-wasm/AppBundle/_framework/dotnet.js"; +import { dotnet } from "./bin/Release/net10.0/browser-wasm/AppBundle/_framework/dotnet.js"; import { getNumber, getStruct } from "../fixtures.mjs"; /** @returns {Promise} */ diff --git a/samples/bench/dotnet/readme.md b/samples/bench/dotnet/readme.md index e98e5573..56c67533 100644 --- a/samples/bench/dotnet/readme.md +++ b/samples/bench/dotnet/readme.md @@ -1,4 +1,4 @@ 1. Install .NET https://dotnet.microsoft.com/en-us/download 2. Install Binaryen https://github.com/WebAssembly/binaryen 3. Run `dotnet publish` -4. Run `wasm-opt bin/Release/net9.0/browser-wasm/publish/dotnet.native.wasm -O3 -o bin/Release/net9.0/browser-wasm/publish/dotnet.native.wasm --all-features --strip-dwarf --strip-debug --vacuum` +4. Run `wasm-opt bin/Release/net10.0/browser-wasm/AppBundle/_framework/dotnet.native.wasm -O3 -o bin/Release/net10.0/browser-wasm/AppBundle/_framework/dotnet.native.wasm --all-features --strip-dwarf --strip-debug --vacuum` diff --git a/samples/bench/readme.md b/samples/bench/readme.md index 8694a13c..b0914a17 100644 --- a/samples/bench/readme.md +++ b/samples/bench/readme.md @@ -19,3 +19,11 @@ All results are relative to the Rust baseline (lower is better). | Fibonacci | `1.0` | `0.9` | `1.0` | `1.0` | `1.6` | `3.7` | | Echo Number | `1.0` | `0.8` | `1.6` | `14.0` | `23.5` | `718.7` | | Echo Struct | `1.0` | `1.0` | `2.0` | `2.5` | `5.9` | `15.2` | + +## 2025 (.NET 10, Node.js 24) + +| | Rust | Zig | .NET LLVM | Bootsharp | .NET AOT | Go | +|-------------|-------|-------|-----------|-----------|----------|---------| +| Fibonacci | `1.0` | `2.0` | `1.2` | `1.2` | `2.1` | `6.1` | +| Echo Number | `1.0` | `0.9` | `1.6` | `19.1` | `28.6` | `1057.0` | +| Echo Struct | `1.0` | `1.2` | `1.9` | `2.5` | `6.3` | `18.8` | \ No newline at end of file diff --git a/samples/minimal/cs/Minimal.csproj b/samples/minimal/cs/Minimal.csproj index 6a0a54f1..967b594a 100644 --- a/samples/minimal/cs/Minimal.csproj +++ b/samples/minimal/cs/Minimal.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 browser-wasm diff --git a/samples/react/backend/Backend.Prime/Backend.Prime.csproj b/samples/react/backend/Backend.Prime/Backend.Prime.csproj index d3fb8b97..6737c538 100644 --- a/samples/react/backend/Backend.Prime/Backend.Prime.csproj +++ b/samples/react/backend/Backend.Prime/Backend.Prime.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable diff --git a/samples/react/backend/Backend.WASM/Backend.WASM.csproj b/samples/react/backend/Backend.WASM/Backend.WASM.csproj index 05d5c007..bf435c46 100644 --- a/samples/react/backend/Backend.WASM/Backend.WASM.csproj +++ b/samples/react/backend/Backend.WASM/Backend.WASM.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 browser-wasm enable @@ -21,9 +21,9 @@ - - - + + + diff --git a/samples/react/backend/Backend/Backend.csproj b/samples/react/backend/Backend/Backend.csproj index e2495fbf..fb97bf36 100644 --- a/samples/react/backend/Backend/Backend.csproj +++ b/samples/react/backend/Backend/Backend.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 diff --git a/samples/trimming/README.md b/samples/trimming/README.md index 9daf019c..cb2dd56e 100644 --- a/samples/trimming/README.md +++ b/samples/trimming/README.md @@ -6,7 +6,8 @@ To test and measure build size: ### Measurements (KB) -| | Raw | Brotli | -|-------------|-------|--------| -| .NET 8 | 2,298 | 739 | -| .NET 9 LLVM | 1,737 | 518 | +| | Raw | Brotli | +|--------------|-------|--------| +| .NET 8 | 2,298 | 739 | +| .NET 9 LLVM | 1,737 | 518 | +| .NET 10 LLVM | 1,610 | 482 | \ No newline at end of file diff --git a/samples/trimming/cs/Trimming.csproj b/samples/trimming/cs/Trimming.csproj index 1cf0a3d1..dd44b089 100644 --- a/samples/trimming/cs/Trimming.csproj +++ b/samples/trimming/cs/Trimming.csproj @@ -1,7 +1,7 @@ - net9.0-browser + net10.0 browser-wasm false diff --git a/src/cs/Bootsharp.Common.Test/Bootsharp.Common.Test.csproj b/src/cs/Bootsharp.Common.Test/Bootsharp.Common.Test.csproj index 21f91c1b..c261af11 100644 --- a/src/cs/Bootsharp.Common.Test/Bootsharp.Common.Test.csproj +++ b/src/cs/Bootsharp.Common.Test/Bootsharp.Common.Test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false @@ -11,17 +11,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/cs/Bootsharp.Common/Bootsharp.Common.csproj b/src/cs/Bootsharp.Common/Bootsharp.Common.csproj index 9bfac8cc..89329d4e 100644 --- a/src/cs/Bootsharp.Common/Bootsharp.Common.csproj +++ b/src/cs/Bootsharp.Common/Bootsharp.Common.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable Bootsharp.Common diff --git a/src/cs/Bootsharp.Generate.Test/Bootsharp.Generate.Test.csproj b/src/cs/Bootsharp.Generate.Test/Bootsharp.Generate.Test.csproj index 06522d3b..00d1bd20 100644 --- a/src/cs/Bootsharp.Generate.Test/Bootsharp.Generate.Test.csproj +++ b/src/cs/Bootsharp.Generate.Test/Bootsharp.Generate.Test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false @@ -11,19 +11,19 @@ - - - - - + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/cs/Bootsharp.Generate/Bootsharp.Generate.csproj b/src/cs/Bootsharp.Generate/Bootsharp.Generate.csproj index fa26eb07..562f9aa0 100644 --- a/src/cs/Bootsharp.Generate/Bootsharp.Generate.csproj +++ b/src/cs/Bootsharp.Generate/Bootsharp.Generate.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/cs/Bootsharp.Inject.Test/Bootsharp.Inject.Test.csproj b/src/cs/Bootsharp.Inject.Test/Bootsharp.Inject.Test.csproj index 65172a1c..20182bad 100644 --- a/src/cs/Bootsharp.Inject.Test/Bootsharp.Inject.Test.csproj +++ b/src/cs/Bootsharp.Inject.Test/Bootsharp.Inject.Test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false true @@ -12,18 +12,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/cs/Bootsharp.Inject/Bootsharp.Inject.csproj b/src/cs/Bootsharp.Inject/Bootsharp.Inject.csproj index 15b0b228..35cd1fdc 100644 --- a/src/cs/Bootsharp.Inject/Bootsharp.Inject.csproj +++ b/src/cs/Bootsharp.Inject/Bootsharp.Inject.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable Bootsharp.Inject @@ -13,7 +13,7 @@ - + diff --git a/src/cs/Bootsharp.Publish.Test/Bootsharp.Publish.Test.csproj b/src/cs/Bootsharp.Publish.Test/Bootsharp.Publish.Test.csproj index 08da01e6..e1249e0b 100644 --- a/src/cs/Bootsharp.Publish.Test/Bootsharp.Publish.Test.csproj +++ b/src/cs/Bootsharp.Publish.Test/Bootsharp.Publish.Test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable false @@ -11,20 +11,20 @@ - - - - - - + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/cs/Bootsharp.Publish/Bootsharp.Publish.csproj b/src/cs/Bootsharp.Publish/Bootsharp.Publish.csproj index 191e91ef..356758d3 100644 --- a/src/cs/Bootsharp.Publish/Bootsharp.Publish.csproj +++ b/src/cs/Bootsharp.Publish/Bootsharp.Publish.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable enable false @@ -9,9 +9,9 @@ - - - + + + diff --git a/src/cs/Bootsharp/Bootsharp.csproj b/src/cs/Bootsharp/Bootsharp.csproj index 35ba3097..82bb8c89 100644 --- a/src/cs/Bootsharp/Bootsharp.csproj +++ b/src/cs/Bootsharp/Bootsharp.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 Bootsharp Bootsharp Use C# in web apps with comfort. diff --git a/src/cs/Directory.Build.props b/src/cs/Directory.Build.props index ae82ea68..baabd08e 100644 --- a/src/cs/Directory.Build.props +++ b/src/cs/Directory.Build.props @@ -1,7 +1,7 @@ - 0.6.3 + 0.7.0 Elringus javascript typescript ts js wasm node deno bun interop codegen https://bootsharp.com diff --git a/src/js/test/cs/Test.Types/Test.Types.csproj b/src/js/test/cs/Test.Types/Test.Types.csproj index 5a5bfd8d..21aa0aa1 100644 --- a/src/js/test/cs/Test.Types/Test.Types.csproj +++ b/src/js/test/cs/Test.Types/Test.Types.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 true bin/codegen diff --git a/src/js/test/cs/Test/Test.csproj b/src/js/test/cs/Test/Test.csproj index 1730c2fa..b2ee0c84 100644 --- a/src/js/test/cs/Test/Test.csproj +++ b/src/js/test/cs/Test/Test.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 enable browser-wasm true From 5a7f9dea5737e6f397a3fe31486af7e5bf298061 Mon Sep 17 00:00:00 2001 From: Artyom Sovetnikov <2056864+Elringus@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:50:21 +0300 Subject: [PATCH 2/4] update monkey --- src/cs/Bootsharp.Publish/Pack/ModulePatcher/ModulePatcher.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cs/Bootsharp.Publish/Pack/ModulePatcher/ModulePatcher.cs b/src/cs/Bootsharp.Publish/Pack/ModulePatcher/ModulePatcher.cs index 18c5773e..4801875b 100644 --- a/src/cs/Bootsharp.Publish/Pack/ModulePatcher/ModulePatcher.cs +++ b/src/cs/Bootsharp.Publish/Pack/ModulePatcher/ModulePatcher.cs @@ -25,7 +25,7 @@ private void RemoveWasmNag () // Removes "WebAssembly resource does not have the expected content type..." warning. File.WriteAllText(dotnet, File.ReadAllText(dotnet, Encoding.UTF8) - .Replace("w('WebAssembly resource does not have the expected content type \"application/wasm\", so falling back to slower ArrayBuffer instantiation.')", "true")); + .Replace("E('WebAssembly resource does not have the expected content type \"application/wasm\", so falling back to slower ArrayBuffer instantiation.')", "true")); } private void PatchThreading () From e5a403371dabdc53b68b0e14d51ca52bde15e43b Mon Sep 17 00:00:00 2001 From: Artyom Sovetnikov <2056864+Elringus@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:52:37 +0300 Subject: [PATCH 3/4] restore dep --- samples/react/backend/Backend.WASM/Backend.WASM.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/react/backend/Backend.WASM/Backend.WASM.csproj b/samples/react/backend/Backend.WASM/Backend.WASM.csproj index bf435c46..b1925ca9 100644 --- a/samples/react/backend/Backend.WASM/Backend.WASM.csproj +++ b/samples/react/backend/Backend.WASM/Backend.WASM.csproj @@ -21,8 +21,8 @@ - - + + From 888afced8c4dd4d7753e7c4f1d8c536ec2e0e499 Mon Sep 17 00:00:00 2001 From: Artyom Sovetnikov <2056864+Elringus@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:55:38 +0300 Subject: [PATCH 4/4] ffs --- samples/bench/readme.md | 2 +- samples/trimming/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/bench/readme.md b/samples/bench/readme.md index b0914a17..2c650b64 100644 --- a/samples/bench/readme.md +++ b/samples/bench/readme.md @@ -26,4 +26,4 @@ All results are relative to the Rust baseline (lower is better). |-------------|-------|-------|-----------|-----------|----------|---------| | Fibonacci | `1.0` | `2.0` | `1.2` | `1.2` | `2.1` | `6.1` | | Echo Number | `1.0` | `0.9` | `1.6` | `19.1` | `28.6` | `1057.0` | -| Echo Struct | `1.0` | `1.2` | `1.9` | `2.5` | `6.3` | `18.8` | \ No newline at end of file +| Echo Struct | `1.0` | `1.2` | `1.9` | `2.5` | `6.3` | `18.8` | diff --git a/samples/trimming/README.md b/samples/trimming/README.md index cb2dd56e..7aa1686d 100644 --- a/samples/trimming/README.md +++ b/samples/trimming/README.md @@ -10,4 +10,4 @@ To test and measure build size: |--------------|-------|--------| | .NET 8 | 2,298 | 739 | | .NET 9 LLVM | 1,737 | 518 | -| .NET 10 LLVM | 1,610 | 482 | \ No newline at end of file +| .NET 10 LLVM | 1,610 | 482 |