-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
The standalone Wizer project has been merged upstream into Wasmtime as of v39.0.0 (November 20, 2025).
Current State
Our tools/wizer_initializer is currently a placeholder implementation that:
- Detects WebAssembly component vs module format
- Has the architecture for component → module → wizer → component workflow
- Does NOT actually perform pre-initialization (returns input as-is)
The wizer crate dependency was never added due to complex dependency conflicts with Cranelift/Wasmtime in Bazel's crate_universe.
New Upstream Solution
Wasmtime v39.0.0+ provides:
CLI: wasmtime wizer
wasmtime wizer --init-func wizer-initialize input.wasm -o output.wasmCrate: wasmtime-wizer
- Available as part of the Wasmtime ecosystem
- Better maintained as part of the main Wasmtime project
- Integrated with Wasmtime's component model support
Breaking Changes
- Init function name changed from
wizer.initializetowizer-initialize(compatible with components) - The
component-initproject was also merged into this
Proposed Migration
Option 1: Use wasmtime wizer CLI (Recommended)
Since we already have a Wasmtime toolchain (//toolchains:wasmtime_toolchain), we can:
- Update
wasm_component_wizer_libraryrule to invokewasmtime wizersubcommand - Remove the
wizer_initializerRust tool (keepchecksum_updateras separate package) - Update init function references from
wizer.initializetowizer-initialize
Option 2: Use wasmtime-wizer crate
If library-level integration is needed:
- Add
wasmtime-wizerto crate dependencies - Implement actual pre-initialization in
wizer_initializer - Handle component model integration
Tasks
- Evaluate which option best fits the project needs
- Update
wasm/wasm_component_wizer_library.bzlto usewasmtime wizer - Split
checksum_updaterinto separate package (it has different dependencies) - Update documentation for new init function name
- Test with existing wizer examples
- Remove deprecated
wizer_initializertool once migration complete
References
- Wasmtime v39.0.0 Release Notes
- wasmtime-wizer API docs
- Original Wizer repository (now archived/redirects)
- component-init (also merged)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request