Skip to content

v0.6.0

Choose a tag to compare

@ydnar ydnar released this 16 Mar 04:46
· 124 commits to main since this release
a0ade74

Added

  • Initial support for Component Model async types stream, future, and error-context.
  • Initial support for JSON serialization of WIT list, enum, and record types.
  • wasm-tools is now vendored as a WebAssembly module, executed using Wazero. This allows package wit and wit-bindgen-go to run on any supported platform without needing to separately install wasm-tools.

Changed

  • Breaking: generated *.wasm.go files will now have correct WIT kebab-case base name. Interfaces or worlds with - in their name will require removal of the previous *.wasm.go files.
  • Breaking: upgraded to wasm-tools v1.227.1, which removes support for multiple return values and flags with > 32 values. To ease migration, this package will continue to support JSON generated by wasm-tools v1.225.0 and earlier.
  • Dropped support for TinyGo v0.32.0 and v0.33.0.
  • Added support for Go 1.24 and dropped support for Go 1.22.

Fixed

  • #281: errors from internal wasm-tools calls are no longer silently ignored. This required fixing a number of related issues, including synthetic world packages for Component Model metadata generation, WIT generation, and WIT keyword escaping in WIT package or interface names.
  • #284: do not use bool for variant or result GC shapes. TinyGo returns result and variant values with bool as 0 or 1, which breaks the memory representation of tagged unions (variants).
  • #288: correctly report the wasm32 ABI alignment of list<T> as 4, rather than 8.
  • #306: run wasm-tools with the --all-features argument so feature-gated WIT is correctly found when synthesizing Component Model metadata for a Go package.