What WasmEdge/WasmEdge shipped
Written by FoxPlug from the repository's own releases; not affiliated with Wasmedge. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/WasmEdge/WasmEdge; Wasmedge did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of November 2, 2026
What shipped
- WASI
path_rename,path_remove_directory,path_create_directoryandpath_linknow resolve paths without following symlinks, so they act on the link itself rather than its target. Pull request #5517 - Wasm_val_vec_copy no longer reverses argument order when calling
wasm_val_copyand no longer reads uninitialized values. Pull request #5496 - A new test fixture covers symlink path resolution: chains of seven symlinks resolve, chains of eight and self-loops return LOOP, and.. cannot climb above the starting directory fd. Pull request #5531
- The AOT example in examples/wasm/README.md now includes --run-mode=aot so it actually runs compiled code. Pull request #5530
- The Assisted-by trailer and PR disclosure statement are removed from contributing docs, the PR template and AGENTS.md. Pull request #5516
Why it matters
These fixes correct WASI filesystem behavior so rename, mkdir, rmdir and path_link operate on symlinks as expected, and repair a C API copy function that could misorder arguments. The added path-resolution tests document existing symlink limits, and the AOT example now uses AOT mode. Contributors also see the disclosure requirement removed, simplifying pull requests.
Changelog entry
- Fix(wasi): do not follow symlinks in rename, mkdir, rmdir and
path_linkPull request #5517 - Fix(api): fix argument order and uninitialized read in
wasm_val_vec_copyPull request #5496 - Test(wasi): cover symlink limits and.. escapes in path resolution Pull request #5531
- Docs(examples): add --run-mode=aot to the AOT example Pull request #5530
- Docs: remove the AI assistance disclosure requirement Pull request #5516
This week: WASI rename/mkdir/rmdir/path_link no longer follow symlinks, wasm_val_vec_copy argument order fixed, symlink resolution tests added, AOT example updated with --run-mode=aot, and the AI disclosure requirement removed from contributor docs.
This week in WasmEdge: WASI path_rename, path_create_directory, path_remove_directory and path_link now resolve paths without following symlinks, so they act on the link itself. wasm_val_vec_copy had its argument order corrected and no longer reads uninitialized values. New tests cover symlink resolution, including chain limits and.. escapes. The AOT example now passes --run-mode=aot, and the Assisted-by disclosure requirement was removed from contributing docs and the PR template.
Week of October 26, 2026
What shipped
- The AOT cache now formats its hash name directly in lib/aot/cache.cpp, and the common/hexstr helpers are removed. Pull request #5488
- The validator now checks operand and result types for i64.add128, i64.sub128, i64.mul_wide_s and i64.mul_wide_u, with 14 explicit cases and proposal checks kept in the loader. Pull request #5399
- Three CI breakages on master are fixed: the
wasm_bpftests, the GCC 9 build, and Dependabot coverage uploads. Pull request #5508 - The sccache server now starts up front in CI, with a fall back to the plain compiler when the cache backend is unavailable. Pull request #5509
- WASI-Crypto gains a secrets manager and key management, plus completed or updated APIs across asymmetric and symmetric cryptography, key exchange and KDF state handling. Pull request #4985
- Dependabot now groups github/codeql-action updates, so the init and analyze bumps arrive in one pull request. Pull request #5510
Why it matters
Wide arithmetic instructions are now type-checked by the validator, so programs using them get checked operands and results rather than passing through. WASI-Crypto has substantially more of its previously unimplemented API surface filled in, including the secrets manager and key management. The other changes are build and CI work that keeps wasm_bpf tests and the GCC 9 build passing and makes cache and Dependabot handling more predictable.
Changelog entry
- Refactor(common): format the AOT cache hash name in lib/aot/cache.cpp and remove common/hexstr. Pull request #5488
- Feat(validator): validate operand and result types for i64.add128, i64.sub128, i64.mul_wide_s and i64.mul_wide_u. Pull request #5399
- Feat(wasi-crypto): add a secrets manager and key management, and complete or update remaining APIs across asymmetric and symmetric cryptography, key exchange and KDF state handling. Pull request #4985
- Fix: unbreak the
wasm_bpftests, the GCC 9 build and Dependabot coverage uploads. Pull request #5508 - Ci: start the sccache server up front and fall back to the plain compiler. Pull request #5509
- Ci(dependabot): group github/codeql-action updates so init and analyze bumps arrive in one pull request. Pull request #5510
This week: the AOT cache formats its hash name directly and common/hexstr is removed; the validator now type-checks i64.add128, i64.sub128, i64.mul_wide_s and i64.mul_wide_u; WASI-Crypto gets a secrets manager, key management and more completed APIs; and CI fixes unbreak the wasm
What shipped this week in WasmEdge. The AOT cache now formats its hash name in lib/aot/cache.cpp and the common/hexstr helpers are removed entirely. The validator now checks operand and result types for i64.add128, i64.sub128, i64.mul_wide_s and i64.mul_wide_u, with 14 explicit validator cases and proposal checks kept in the loader. WASI-Crypto gains a secrets manager and key management, and a significant portion of previously unimplemented APIs across asymmetric and symmetric cryptography, key exchange and KDF state handling are completed or updated. On the build side, three CI breakages on master are fixed, covering the wasm_bpf tests, the GCC 9 build and Dependabot coverage uploads. The sccache server now starts up front with a fall back to the plain compiler, and Dependabot groups gith
Week of October 19, 2026
What shipped
- WasmEdge 0.18.1 was released with fixes for the validator array.new_fixed operand check and restored backward-compatible CAPI symbols. Release
- The 0.17 ModuleInstanceAdd compatibility symbols were kept in 0.18 so binaries linked against 0.17.x load again. Pull request #5443
- The validator now pops array.new_fixed operands one at a time instead of allocating a vector sized by the count immediate. Pull request #5472
- WasmEdge::uint128 bitwise shifts are now guarded for shift amounts of 128 and above, and
numeric_limitswas corrected. Pull request #5474 - The validator now keeps operand types of
br_tableafter an unreachable frame instead of replacing them all with the bottom type. Pull request #5428 - AOT compilation now lowers
return_callto imported functions as a native tail call, avoiding stack growth on each hop. Pull request #5437 - The parse tool no longer hangs on malformed name custom sections because the name section bounds checks avoid uint32 overflow. Pull request #5446
- Table instruction error reports now use the table address type, so 64-bit table accesses above UINT32_MAX are interpreted correctly. Pull request #5449
- Type matching was reworked to follow the spec subtyping rules, validating recursive type members before matching them against super types. Pull request #5383
- The component-model loader and validator were updated to the current spec, and the spec test suite moved to the wasm-core-20261019 tag. Pull request #5404
Why it matters
This week's release of 0.18.1 brings validator fixes that prevent oversized allocations and accept/reject the right modules, plus restored CAPI symbols so applications built against 0.17.x load with the 0.18 library. AOT tail calls to imported functions and guarded 64-bit table error reporting affect compiled and interpreted execution. The remaining fixes harden parsing and type matching against malformed or edge-case inputs.
Changelog entry
- Released WasmEdge 0.18.1 with validator and CAPI fixes. Release
- Released WasmEdge 0.18.1-rc.1 with CAPI symbol and AOT fixes. Release
- Kept the 0.17 ModuleInstanceAdd compatibility symbols in 0.18. Pull request #5443
- Validator pops array.new_fixed operands without materializing the count immediate. Pull request #5472
- Guarded uint128 bitwise shifts at 128 and above and fixed
numeric_limits. Pull request #5474 - Validator keeps
br_tableoperand types after unreachable. Pull request #5428 - AOT lowers
return_callto imported functions as a native tail call. Pull request #5437 - Fixed uint32 overflow in parse name section bounds checks. Pull request #5446
- Table instruction errors use the table address type. Pull request #5449
- Reworked type matching along the spec subtyping rules. Pull request #5383
- Updated component-model spec tests to wasm-core-20261019. Pull request #5404
- Fixed branch hints and trimmed the interpreter dispatch loop. Pull request #5400
WasmEdge 0.18.1 is out: bounded array.new_fixed validation, restored 0.17 CAPI symbols, br_table fix after unreachable, uint128 shift guards, AOT tail calls to imports, and a parse hang fix. Component-model spec tests updated too.
WasmEdge 0.18.1 is released. It bounds the validator's array.new_fixed operand check so a huge count fails validation without allocating gigabytes, and restores the backward-compatible WasmEdge_ModuleInstanceAdd symbols so applications linked against 0.17.x load with the 0.18 library. Other fixes this week include keeping br_table operand types after unreachable, guarding uint128 bitwise shifts, lowering return_call to imported functions as a native tail call in AOT, and preventing a uint32 overflow that made the parse tool hang on malformed name sections. The component-model loader and validator were also updated to the current spec and its tests to the wasm-core-20261019 tag.
Week of September 28, 2026
What shipped
- WasmEdge 0.18.0-rc.1 released with breaking changes to CAPI module instance functions that now return WasmEdge_Result instead of void. Release
- WasmEdge 0.18.0-alpha.2 released with configurable call stack size limits and updated component model encodings. Release
- Added configurable call stack size limit with CallStackExhausted trap to support WebAssembly spec tests. Pull request #5040
- Updated loader and validator to latest component model proposal canonical and name encodings. Pull request #5376
- Fixed driver to reject negative --memory-page-limit values instead of wrapping them to UINT32_MAX. Pull request #5363
- Fixed WASI socket handling on Windows to correctly read SO_ERROR of 0 as success for asynchronous connects. Pull request #5392
- Fixed validator to check all members of recursive type groups before matching subtypes. Pull request #5389
- Fixed LLVM code generation to keep temporary values in entry block for struct/array operations and call instructions. Pull request #5379
Why it matters
Three stable and pre-release versions shipped this week, with significant improvements to component model support, call stack limits for spec compliance, and upstream dependency upgrades. Bug fixes address input validation, platform-specific socket handling, and type checking in the validator.
Changelog entry
- CMake now uses system blake3 library when available, with fallback to vendored copy; set -DCMAKE_DISABLE_FIND_PACKAGE_blake3=ON to force vendored Release
- Added configurable RuntimeConfigure::MaxStackSize to limit call stack and trap with CallStackExhausted on overflow Pull request #5040
- Updated component model canonical and name encodings in loader and validator Pull request #5376
- Fixed driver to reject negative --memory-page-limit values at CLI level instead of wrapping to UINT32_MAX Pull request #5363
- Fixed Windows socket SO_ERROR handling to correctly read 0 as success for asynchronous connects Pull request #5392
- Fixed validator to check entire recursive type group before matching subtypes Pull request #5389
- Fixed LLVM temporary value handling in struct/array operations and call instructions Pull request #5379
- Fixed ArgumentParser help text formatting to remove extra newlines in option display Pull request #5398
- Replaced runtime string concatenation with spdlog format in WASI-NN MLX plugin Pull request #5372
- Cleaned up stale test registrations and removed test stubs for removed plugins Pull request #5396
Week of September 21, 2026
What shipped
- Released version 0.17.2-rc.4 pre-release. Release
- Fixed unbounded recursion by bounding the interpreter stack to 8 MiB and trapping with CallStackExhausted when exceeded. Pull request #5377
- Added validation of BitNet WASI-NN metadata including tensor-split and batch parameters. Pull request #4916
- Fixed memory.atomic.notify to use correct four-byte access width instead of eight-byte. Pull request #5304
- Fixed
poll_oneofftimeouts and select errors on Windows by correcting time unit conversions and error handling. Pull request #5365 - Added proper Windows socket and getaddrinfo error mapping instead of falling back to ENOSYS. Pull request #5373
- Added MultipleSuperTypes error code to report validation errors for subtypes with multiple supertypes. Pull request #5374
- Refactored component validator helpers to use overloads and simplify type resolution. Pull request #5332
- Fixed
epoll_waitto return early when no event is subscribed instead of passing invalid empty buffer. Pull request #5364 - Added test coverage for ULEB32 decoding of miscellaneous subopcodes in the loader. Pull request #5350
Why it matters
This week includes critical stability fixes for stack overflow handling and memory access validation, along with platform-specific improvements for Windows socket handling and WASI polling. The pre-release candidate brings together fixes for edge cases in atomic operations, validator error reporting, and proper error mapping across platforms.
Changelog entry
- Executor now bounds heap value and frame stacks to 8 MiB before entering functions, trapping with CallStackExhausted error when exceeded Pull request #5377
- Fixed memory.atomic.notify validation to check correct four-byte access width instead of eight bytes Pull request #5304
- Added validation of BitNet WASI-NN metadata including tensor-split, batch, and related parameters Pull request #4916
- Fixed Windows
poll_oneofftimeouts by correcting time unit conversions and select error handling Pull request #5365 - Added proper Windows socket and getaddrinfo error code mapping Pull request #5373
- Added MultipleSuperTypes validation error code for subtypes declaring multiple supertypes Pull request #5374
- Fixed
epoll_waitto return early when no events are subscribed Pull request #5364 - Refactored component validator helpers using overloads and simplified type resolution Pull request #5332
- Added loader test coverage for ULEB32 decoding of miscellaneous subopcodes Pull request #5350
0.17.2-rc.4 is out. Notable fixes: bounded recursion to prevent OOM, correct atomic.notify access width, Windows socket error mapping, and poll_oneoff timeout handling.
WasmEdge 0.17.2-rc.4 addresses critical stability improvements. The release bounds interpreter recursion to 8 MiB to prevent unbounded memory growth, fixes atomic memory operations to use correct access widths, improves Windows platform support with proper socket error mapping, and corrects WASI polling behavior for timeouts and edge cases.
Week of September 14, 2026
What shipped
- WASI-NN RPC implementation fixed to use dynamic buffer sizing instead of hardcoded 64 KiB for
get_outputoperations. Pull request #5031 - Uninstaller crash fixed when shell profile files contain multiple WasmEdge environment source lines. Pull request #5345
- WASI getaddrinfo call now validates output buffer bounds and initializes Winsock before Windows address resolution. Pull request #5344
- Executor fixed to type null locals of abstract reference types correctly with bottom heap types. Pull request #5347
- LLVM backend optimized to lower v128.store using masked stores for better performance. Pull request #5329
- Memory leak in APICoreTest.ModuleDeletion fixed by properly freeing LoaderContext and ValidatorContext. Pull request #5359
- MacOS CI jobs fixed to gate test execution on the matrix tests flag to handle CMake 4.4 behavior. Pull request #5353
- Contributing guidelines updated to use Assisted-by trailer for AI disclosure instead of Co-Authored-By. Pull request #5354
Changelog entry
- WASI-NN RPC
get_outputandget_output_singlenow use dynamic sizing instead of 64 KiB hardcoded limit Pull request #5031 - Fixed uninstall.sh sed crash when multiple WasmEdge environment source lines exist in shell profiles Pull request #5345
- WASI getaddrinfo validates output buffer bounds and initializes Winsock on Windows Pull request #5344
- Executor corrected to type null locals of abstract reference types with bottom heap types Pull request #5347
- LLVM backend optimized v128.store using masked stores Pull request #5329
- Fixed memory leak in APIUnitTest.cpp APICoreTest.ModuleDeletion test Pull request #5359