Skip to content

feat(wasix): integrate bundled Windows V8 engine and native caches - #255

Open
f0rr0 wants to merge 19 commits into
f0rr0/wasmer-dependency-refresh-20261003from
f0rr0/windows-wasix-production
Open

f0rr0 wants to merge 19 commits into
f0rr0/wasmer-dependency-refresh-20261003from
f0rr0/windows-wasix-production

Conversation

@f0rr0

@f0rr0 f0rr0 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Wasmer 7.5 no longer supports the Windows LLVM backend. Keep the WASIX Rust and Node SDK APIs consistent across desktop hosts by selecting a bundled V8 engine and precompiled native caches internally on Windows; Linux and macOS retain LLVM.

  • Own the four narrowly patched Wasmer/WASIX crates under the runtime product, with immutable sources, replayable patches, and upstream notices.
  • Deliver the engine through normal Cargo/npm packaging. Windows consumers receive the DLL and native caches without guest compilation, engine downloads, or compiler setup. Split oversized Windows AOT Cargo payloads into private, exact-version part crates with the existing size-aware helper; reconstruct and hash them in Cargo build output while preserving the public carrier names.
  • Produce genuine SSE4.1 cache profiles with and without CET, validate source/DLL/cache identities, and reject missing or incompatible caches without compiling them.
  • Use the existing Moon graph, same-run artifact transfers, carrier helpers, and release ownership/version contracts. Release assembly consumes frozen producer outputs. Use the shared Windows toolchain, prepare acquisition tools before macOS source fetching, and preserve source preparation across transferred AOT boundaries.
  • Test the frozen Windows engine family from an isolated Cargo directory, installed Rust SDK, and full Windows extension lifecycle in the existing producer/AOT lanes; retain normal packaged Node checks. Keep native qualification separate from packaging unit tests, avoid duplicate engine test builds, and close copied Cargo dependencies transitively for clean SDK/pgwire consumers.
  • Serialize tasks that build or run the shared pgwire executable with Moon's existing mutex option. Cargo releases its build lock before tests finish, so concurrent feature builds can otherwise replace a running CLI on Windows.

Validation: local runtime/tools Rust formatting and lint, JavaScript formatting/lint, shared/runtime/tools packaging tests, release metadata, and the complete release suite pass. Extracted core and tools carrier tests prove offline byte reconstruction, exact child dependency pins, corrupted-part rejection, and cached repeat builds. Repackaging genuine baseline V8 cache bytes from the preceding CI run also stays below the package limit and reconstructs every core/tool payload byte correctly in isolated Cargo consumers. These local packaging checks do not execute Windows guests.

On 2cf91168, Windows pgwire tests and SDK source regression tests, including persistence, recovery, and all 39 extensions, passed. Installed-SDK qualification then rejected the 24.2 MB runtime crate, which this packaging change fixes. Exact-head Windows installed execution and full cross-platform qualification remain pending in CI run 37584874208 for commit 8db3bd8885c32a5ca546f9038fc04764ab56610b.

Qualification remains pending. Stacked on #247; its base includes the patch corrections in #218.

@vercel

vercel Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
oliphaunt-docs Ready Ready Preview Oct 7, 2026 7:02am UTC

@f0rr0
f0rr0 marked this pull request as ready for review October 6, 2026 10:38

This branch was successfully deployed

1 active deployment
Preview — 8db3bd88 Deployed Oct 7, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant