web-infra-dev
rspack
BlogDocsChangelog

feat(mf): add async startup promise gating for entrypoints

#11899
Comparing
feature/async-startup-runtime-promise
(
475bab2
) with
main
(
ece0fee
)
CodSpeed Performance Gauge
0%
Untouched
16
Skipped
1

Benchmarks

Skipped (1)

rust@build_chunk_graph_parallel
xtask/benchmark/benches/groups/build_chunk_graph.rs::chunk_graph::build_chunk_graph_benchmark
Skipped
114.7 ms*

Passed

js@is css mod
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
+1%
87.2 µs86.7 µs
bundle@basic-react-development
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
346.4 ms345 ms
js@Traverse compilation.modules
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
64.8 µs64.6 µs
bundle@threejs-production
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
1.6 s1.6 s
js@collect imported identifiers
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
207.7 µs207.5 µs
js@Traverse module graph by connections
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
260 µs259.8 µs
js@record chunk group
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
78.3 µs78.3 µs
bundle@threejs-development
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
738.9 ms738.3 ms
js@record module
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
bundle@basic-react-production
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
547.3 ms547.3 ms
bundle@threejs-production-sourcemap
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
2 s2 s
rust@build_chunk_graph
xtask/benchmark/benches/groups/build_chunk_graph.rs::chunk_graph::build_chunk_graph_benchmark
CodSpeed Performance Gauge
0%
116.4 ms116.5 ms
js@Traverse module graph by dependencies
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
517.9 µs518.8 µs
js@external getResolve
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
1.5 ms1.5 ms
js@stats.toJson()
tests/bench/ts-react.bench.ts::TypeScript React project
CodSpeed Performance Gauge
0%
23.3 ms23.4 ms
bundle@basic-react-production-sourcemap
xtask/benchmark/benches/groups/bundle.rs::bundle::bundle_benchmark::bundle
CodSpeed Performance Gauge
0%
700.3 ms702.7 ms

Commits

Click on a commit to change the comparison range
Base
main
ece0fee
+0.03%
chore(binding): sync wasi generated exports
2ef62db
3 months ago
by ScriptedAlchemy
-0.68%
fix(runtime): adjust async startup promise flow
36cd349
3 months ago
by ScriptedAlchemy
+0.61%
chore: merge origin main
a8ce32c
3 months ago
by ScriptedAlchemy
+0.02%
fix(runtime): ensure async loaders await dependencies
463e19b
3 months ago
by ScriptedAlchemy
-0.03%
refactor(runtime): tidy async startup hash update
d1c8a51
3 months ago
by ScriptedAlchemy
-0.01%
fix(runtime): gate mf async startup behind experiment
4cc4f4e
3 months ago
by ScriptedAlchemy
-0.2%
fix: honor explicit mfAsyncStartup for containers Allow async startup when mfAsyncStartup is explicitly true, even for chunks with container entries. Only disable async startup for containers when it's implicitly enabled through chunk handlers.
30b5d94
3 months ago
by ScriptedAlchemy
+0.13%
fix(mf): include runtime handlers in enhanced mode Previously, enhanced mode would only set fallback error functions for __webpack_require__.f.consumes, __webpack_require__.f.remotes, and __webpack_require__.I instead of including the actual handler implementations. This caused runtime errors when async startup was enabled. Now enhanced mode includes the actual handler code: - ConsumeSharedRuntimeModule includes consumesCommon.js, consumesInitial.js, and consumesLoading.js - RemoteRuntimeModule includes remotesLoading.js - ShareRuntimeModule includes initializeSharing.js Also adds container entry detection to prevent async startup for container.js files while allowing it for host files (main.js) that consume remotes. Test results improved from 14 failures to 5 failures. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
a70265d
3 months ago
by ScriptedAlchemy
+0.17%
fix(binding): add mf async startup bindings
1e50a14
3 months ago
by ScriptedAlchemy
+0.08%
chore: update Cargo.lock after removing ustr dependency
0623ed8
3 months ago
by ScriptedAlchemy
-0.29%
fix: gate all MF async startup logic on experiment flag Only apply async startup runtime modules when mf_async_startup experiment is explicitly enabled. This prevents adding extra runtime modules to non-MF builds. Fixes test failures where stats snapshots showed 12 runtime modules instead of 3 for regular (non-MF) builds.
8994f30
3 months ago
by ScriptedAlchemy
+0.02%
fix: properly gate MF async startup to preserve main branch behavior - Separate main branch logic from MF async startup logic - Only apply container entry check to MF async builds, not all builds - Non-MF builds now match main branch (3 runtime modules instead of 12) - Update snapshots for commons-chunk-min-size-Infinity and named-chunks-plugin tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
28eba04
3 months ago
by ScriptedAlchemy
+0.02%
fix: suppress false positive 'this' unused warning in BuildInfo The TypeScript ESLint rule incorrectly flags 'this' as unused even though it's used via the spread operator (...this) and property accesses. Added eslint-disable comment to suppress this false positive. This unblocks CI which has 2283 warnings vs the 2282 limit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
b3b3c5d
3 months ago
by ScriptedAlchemy
+0.25%
fix(rspack): make build info inspect serializable
52fb979
3 months ago
by ScriptedAlchemy
0%
fix(incremental): avoid repeat full-hash warnings
31da1bb
3 months ago
by ScriptedAlchemy
+0.06%
test(container): align async startup expectations
3ba4253
3 months ago
by ScriptedAlchemy
-0.1%
test(container): handle remote share versions
fbd55b0
3 months ago
by ScriptedAlchemy
-0.03%
test(container): normalize async startup expectations
b5c3d9c
3 months ago
by ScriptedAlchemy
0%
fix(mf): guard embed runtime plugin behind async startup
420b7f6
3 months ago
by ScriptedAlchemy
-0.08%
fix(mf): ensure backwards compatibility for async startup feature Ensures default behavior matches main branch exactly when mfAsyncStartup flag is disabled. Changes: - Remove inverted guard logic preventing embed runtime plugin from running - Make runtime code generation conditional on async_startup flag - Restore chunk cleanup logic with proper conditional guards - Add missing async_startup field to ModuleFederationRuntimePluginOptions - Restore test files that were deleted from main branch 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3ebd6f3
3 months ago
by ScriptedAlchemy
0%
fix(ir): minimal async startup gating
deca562
3 months ago
by ScriptedAlchemy
+0.02%
fix(runtime): restore sync startup when mf async disabled
5b238ab
2 months ago
by ScriptedAlchemy
-0.08%
test(stats): restore snapshot baselines
df01379
2 months ago
by ScriptedAlchemy
+0.04%
fix(runtime): restore startup plugin wiring for async
7c7e021
2 months ago
by ScriptedAlchemy
-0.07%
fix(resolver): avoid sharing alias caches across compilers
e8a04f9
2 months ago
by ScriptedAlchemy
+0.08%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
9094974
2 months ago
by ScriptedAlchemy
+0.01%
chore: sync runtime cargo manifest
b452da3
2 months ago
by ScriptedAlchemy
+0.43%
chore: snapshot current work
0f2d5f4
2 months ago
by ScriptedAlchemy
+0.18%
test: update default options snapshot
c7f5d5c
2 months ago
by ScriptedAlchemy
-0.29%
Merge branch 'main' into feature/async-startup-runtime-promise
762e0ef
2 months ago
by ScriptedAlchemy
-0.29%
fix: correct container entry chunk handling for non-async startup - Make container entry chunk skip conditional on mf_async_startup experiment - Ensure container entries get proper runtime requirements when async startup is disabled - Fix Promise.all wrapping for federation runtime initialization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
8016dd8
2 months ago
by ScriptedAlchemy
-0.02%
feat: implement ESM async startup with Promise.resolve().then() pattern - Modified embed_federation_runtime_plugin.rs to wrap ESM execution in Promise - Extract import statements to keep them at top level (cannot be inside functions) - Use async/await syntax for ESM instead of callback functions - Match expected test pattern: const __webpack_exports__Promise = Promise.resolve().then(async () => - Tests: 1635/1636 passing (99.94%) - One runtime error remaining in ComponentB loading 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
b1f5b57
2 months ago
by ScriptedAlchemy
-19.84%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
d30b7d9
2 months ago
by ScriptedAlchemy
+19.94%
fix: avoid string conversion on source value
776c5a5
2 months ago
by ScriptedAlchemy
-0.08%
chore: restore esm snapshot baselines
1190bd9
2 months ago
by ScriptedAlchemy
+0.11%
fix: gate mf async bootstrap and preserve imports
8aadb28
2 months ago
by ScriptedAlchemy
-0.19%
fix: restore accidentally removed exports from WASI binding files The WASI binding files had their exports accidentally removed in the PR, causing CI build failures on all platforms (Linux, Mac ARM64, Windows, WASM). This commit restores the necessary exports from the main branch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
0be6e50
2 months ago
by ScriptedAlchemy
+0.07%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
9914305
2 months ago
by ScriptedAlchemy
-0.14%
test: update stats exports snapshot
2c08ac8
2 months ago
by ScriptedAlchemy
0%
test: update stats exports snapshot for macOS build Updated the exports snapshot to match the local macOS build output. Hash values differ between build environments but functionality is identical. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
553915a
2 months ago
by ScriptedAlchemy
+0.2%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
ba6e99b
2 months ago
by ScriptedAlchemy
+0.26%
chore: format examples/basic config
5037973
2 months ago
by ScriptedAlchemy
-0.42%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
5641d9c
2 months ago
by ScriptedAlchemy
+0.14%
chore: format code to satisfy Prettier CI checks
66991e1
2 months ago
by ScriptedAlchemy
+0.16%
test(wasm): relax chunk id expectation in mini-css-extract-plugin case to accept dynamic suffixes across runtimes
8d53ac1
2 months ago
by ScriptedAlchemy
-0.19%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
9a1a65c
2 months ago
by ScriptedAlchemy
-0.02%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
4e6be08
2 months ago
by ScriptedAlchemy
+0.13%
fix: update runtime module export name
c9d8a4f
2 months ago
by ScriptedAlchemy
-0.24%
Merge branch 'main' into feature/async-startup-runtime-promise
a7bfd9a
2 months ago
by ScriptedAlchemy
+0.16%
Merge branch 'main' into feature/async-startup-runtime-promise
4e82ca7
2 months ago
by ScriptedAlchemy
-0.05%
Merge branch 'main' into feature/async-startup-runtime-promise
c695be6
2 months ago
by ScriptedAlchemy
+11.2%
chore: align markdown-to-jsx version
1b7c2b8
2 months ago
by ScriptedAlchemy
+0.09%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
b51162b
2 months ago
by ScriptedAlchemy
+0.6%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
75265bb
2 months ago
by ScriptedAlchemy
-11.97%
chore: fix workspace dependency targets
0a16f5f
2 months ago
by ScriptedAlchemy
+0.09%
fix(runtime): guard startup entrypoint fallback
5b12bd2
2 months ago
by ScriptedAlchemy
-0.31%
fix: align async mf startup globals
ee39816
2 months ago
by ScriptedAlchemy
+0.28%
fix: use async startup entrypoint for delegated mf chunks
ea55acc
2 months ago
by ScriptedAlchemy
-0.05%
fix: restore startup for mf entry chunks
09cd387
2 months ago
by ScriptedAlchemy
-0.11%
chore: revert esm library change
e3388bf
2 months ago
by ScriptedAlchemy
+0.16%
fix(binding): regenerate WASI named exports
8fb9e27
2 months ago
by ScriptedAlchemy
-0.18%
fix(mf): keep consumes runtime state in async startup
40c3572
2 months ago
by ScriptedAlchemy
+0.02%
chore: lock mf bundler runtime to 0.21.6
4d7a5ff
2 months ago
by ScriptedAlchemy
-0.07%
fix(mf): declare exports in async ESM bootstrap
c24eeae
2 months ago
by ScriptedAlchemy
-0.19%
chore(examples): remove per-app buildId query for remotes
88005b4
2 months ago
by ScriptedAlchemy
+0.16%
test: cover async startup multi-entry and on-chunks-loaded
3324e49
2 months ago
by ScriptedAlchemy
-0.01%
chore: drop temp-cjs-ssr example to minimize changes
cf4ae84
2 months ago
by ScriptedAlchemy
+0.23%
chore: update pnpm lockfile
b558db7
2 months ago
by ScriptedAlchemy
+0.07%
test: isolate async startup runtime chunk case
9b87983
1 month ago
by ScriptedAlchemy
-0.15%
test: update stats output snapshot
b8671df
1 month ago
by ScriptedAlchemy
+0.07%
test: normalize dynamic-import stats snapshot
d1dd7c9
1 month ago
by ScriptedAlchemy
+0.19%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise # Conflicts: # crates/rspack_core/src/runtime_globals.rs # crates/rspack_plugin_javascript/src/plugin/mod.rs # crates/rspack_plugin_mf/src/container/embed_federation_runtime_module.rs # crates/rspack_plugin_mf/src/container/embed_federation_runtime_plugin.rs
a6677cf
1 month ago
by ScriptedAlchemy
-0.09%
fix: skip on_chunks_loaded when async federation startup
0a923b4
1 month ago
by ScriptedAlchemy
-0.12%
merge: bring fix/async-startup-federation-align changes
160e370
1 month ago
by ScriptedAlchemy
+0.22%
fix: prevent IIFE wrapping for embed_federation_runtime module Add should_isolate() -> false to EmbedFederationRuntimeModule to prevent rspack from wrapping the runtime module in an IIFE. This allows the __webpack_require__mf_startup_once variable to be accessible in the outer bundle scope, fixing the async-startup federation initialization. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
ac0dae3
1 month ago
by ScriptedAlchemy
-0.06%
fix: gate async startup wrapper to experiment
474d069
1 month ago
by ScriptedAlchemy
+0.36%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
bd244ba
1 month ago
by ScriptedAlchemy
-0.04%
refactor(mf): move async startup hook to runtime global
eb85179
1 month ago
by ScriptedAlchemy
-0.5%
test: stabilize rule-set custom loader ident
db07dc1
1 month ago
by ScriptedAlchemy
+0.27%
fix(mf): await async federation startup promises
e966143
1 month ago
by ScriptedAlchemy
+0.14%
fix: add cow-utils to mf runtime module
0624730
1 month ago
by ScriptedAlchemy
-0.19%
fix: keep async startup body multiline to avoid syntax error
4783ee5
1 month ago
by ScriptedAlchemy
-0.18%
chore: drop unused cow-utils from mf runtime
8e1b6e6
1 month ago
by ScriptedAlchemy
-0.13%
refactor: keep CJS chunk loading default, set async-node in async startup tests
39d948d
1 month ago
by ScriptedAlchemy
+0.08%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
fe4aafe
1 month ago
by ScriptedAlchemy
+0.03%
chore: sync helpers.rs with main
357996b
1 month ago
by ScriptedAlchemy
+0.3%
Merge remote-tracking branch 'origin/main' into async-runtime-startup # Conflicts: # crates/rspack_plugin_runtime/src/startup_chunk_dependencies.rs # tests/rspack-test/configCases/rule-set/custom/rspack.config.js
c88f4bf
28 days ago
by ScriptedAlchemy
-0.27%
chore: rustfmt startup_chunk_dependencies
ff7abb3
27 days ago
by ScriptedAlchemy
+0.22%
refactor: simplify rspack API integration in Compiler - Removed the getRspackApi function and directly utilized the rspack import. - Updated the types for webpack and rspack properties in the Compiler class to use the imported rspack type.
b923889
24 days ago
by ScriptedAlchemy
-0.08%
chore: update api-extractor output after reverting Compiler.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
e56979d
24 days ago
by ScriptedAlchemy
-0.19%
fix: correct syntax in loader.js by adding missing semicolon
2858ecc
24 days ago
by ScriptedAlchemy
+0.2%
fix(mf): keep v1 plugin unchanged
d369bc1
23 days ago
by ScriptedAlchemy
+0.07%
fix(mf): streamline async startup runtime - Emit mfAsyncStartup as a single cached assignment (no extra wrappers/temps)\n- Wrap STARTUP/STARTUP_ENTRYPOINT to await async federation init\n- Ensure ESM module library awaits startup result when async federation startup is enabled\n- Avoid static ESM external imports for relative module remotes to prevent cycles
bf22284
23 days ago
by ScriptedAlchemy
+0.09%
test(mf): avoid sync require in async-startup case Avoid triggering loadShareSync() by removing the sync require("mocked-react") reset; use an async boundary in beforeEach instead.
a04c04f
23 days ago
by ScriptedAlchemy
-0.43%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
31cdd57
22 days ago
by ScriptedAlchemy
-0.05%
fix(mf): respect output env for async startup wrapper
4e585b1
22 days ago
by ScriptedAlchemy
+0.11%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
72b35a6
22 days ago
by ScriptedAlchemy
+0.16%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
633193a
21 days ago
by ScriptedAlchemy
-0.1%
fix: restore WASI wrapper exports to match build output The build process regenerates these files with individual exports, so the branch needs to include them to avoid CI diff failures. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
de6c7f5
21 days ago
by ScriptedAlchemy
-0.12%
chore: fix prettier formatting in website docs 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
54dd11b
21 days ago
by ScriptedAlchemy
+0.29%
Merge branch 'main' into feature/async-startup-runtime-promise
9bcf957
21 days ago
by ScriptedAlchemy
+0.24%
refactor: detect expose via chunk graph
fc6b33f
17 days ago
by ScriptedAlchemy
-0.16%
fix(mf): hoist to runtime chunk by runtime
e2a694c
17 days ago
by ScriptedAlchemy
+0.06%
chore: drop unrelated lockfile/test changes
8bbc734
17 days ago
by ScriptedAlchemy
-0.22%
Merge branch 'main' into feature/async-startup-runtime-promise
dcc2f8c
17 days ago
by ScriptedAlchemy
+0.16%
Merge origin/main into feature/async-startup-runtime-promise
3ed585a
10 days ago
by ScriptedAlchemy
+0.2%
fix: clippy needless borrow
82686ee
10 days ago
by ScriptedAlchemy
-0.2%
Merge branch 'main' into feature/async-startup-runtime-promise
682e077
9 days ago
by ScriptedAlchemy
-0.08%
Merge branch 'main' into feature/async-startup-runtime-promise
7f9f7f1
9 days ago
by ScriptedAlchemy
-0.39%
fix: update wasm binding exports
c084bb0
6 days ago
by ScriptedAlchemy
+0.08%
refactor(mf): move embed runtime to templates
bc21bd5
6 days ago
by ScriptedAlchemy
+0.28%
chore(binding): update WASI shims
5eaa013
6 days ago
by ScriptedAlchemy
-0.13%
fix: wire async startup entrypoint
97baa0b
6 days ago
by ScriptedAlchemy
+0.06%
chore: format mf test assets
becc293
6 days ago
by ScriptedAlchemy
-0.11%
Merge remote-tracking branch 'origin/main' into feature/async-startup-runtime-promise
d55aeae
5 days ago
by ScriptedAlchemy
+0.16%
chore: update pnpm-lock
195cbda
3 days ago
by ScriptedAlchemy
+0.01%
merge origin/main
475bab2
2 days ago
by ScriptedAlchemy
© 2026 CodSpeed Technology
Home Terms Privacy Docs