Dotnet Webassembly Versions Save

Create, read, modify, write and execute WebAssembly (WASM) files from .NET-based applications.

v1.2.1

1 year ago
  • For .NET 3.1 or higher, BitOperations are leveraged to accelerate 32 and 64-bit WASM instructions for count of leading 0 bits, count of 1 bits, count of trailing 0 bits, rotate left, and rotate right.

v1.2.0

2 years ago

Fixed the "WebAssemblyValueType 7 not recognized." error encountered during compilation of some WASMs. Thanks @munik!

v1.1.0

3 years ago
  • Added a .NET Standard 2.0 build.

v1.0.0

3 years ago
  • Block-type instructions that returned their type in .ToString now more closely match the WAT format; "block (returns i32)" is now "block i32", for example.
  • This is the first formal release, breaking changes should be rare going forward.

v0.11.0

3 years ago
  • First non-preview release!
    • The APIs for creation and modification of WASM files have been stable for a long time, so no need to hold it back any longer.
    • Compilation still has numerous gaps in specification compliance, but has enough "core" functionality to call it a beta.
  • Significantly improved compilation compatibility by fixing multiple issues with branches that continue a loop.
  • Added several constructors to simplify creation of WASM-related objects.

v0.10.2-preview

3 years ago

v0.10.1-preview

3 years ago

v0.10.0-preview

3 years ago
  • .NET Core 3.1 or higher is now required, the .NET Standard builds have been removed.
  • Added support for sign extension and saturating truncation operators thanks to @tgjones.
  • Indirect functions with no parameters and no returns are now supported.
  • Fixed multiple issues with memory imports, unblocking some spec test scenarios.
  • The default .ToString for instructions now returns the native WebAssembly opcode name.

v0.9.0-preview

3 years ago
  • Compiled exports now have an attribute indicating their native export type and name.
  • Runtime global imports now accept raw delegates.
  • Various bug fixes.

Breaking Changes

  • Out of range import types throw ModuleLoadException instead of IndexOutOfRangeException.
  • RuntimeException is now abstract.
  • Missing or incorrectly typed imports now throw ImportException instead of ArgumentException.
  • ImportDictionary's only member, an Add method, was changed to an extension method, which is binary-breaking but not code-breaking.

v0.8.0-preview

4 years ago
  • Contents of grown memory is now initialized to 0 before being made available for use. Special thanks to @TYoung86 for identifying and fixing this issue.
  • Memory can now grow from an initial size of zero.
  • Improved disposal tracking of UnmanagedMemory.
    • Previously it was possible to un-dispose objects of this type by calling Grow. An object revived in this way would leak memory if it was not explicitly Disposed before being discarded.
  • Added .NET Standard 2.1 build with no dependencies.